1 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:19:33 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part38 pc11.2ch.net/test/read.cgi/tech/1235864730/
702 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:48:14 ] VC#単体(他から持ってきたライブラリを使わず)で開発したソフトやゲームを 販売する場合、ライセンス等の問題ってありますか?
703 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:59:31 ] 場合による。
704 名前:デフォルトの名無しさん [2009/04/04(土) 21:17:48 ] ミサイル防衛システム作りたいんですがヒントだけでもください
705 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 21:25:07 ] MDIで作成した子フォームに含まれるコントロールを取得後、アクセスしたいんですが foreachでいちいちループ回さないといけない・・・ なんか他にいい方法ないでしょうか? 子フォームはアクティブな状態のものです if (!(this.ActiveMdiChild as Form == null)) { foreach (Control Ctrl in (this.ActiveMdiChild as Form).Controls) { if (Ctrl is TextBox /*例としてテキストボックス*/ ) { //処理 } } }
706 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 21:41:58 ] 全コントロールを対象に処理が必要なら foreach で回さざるを得ないだろ。 特定のコントロールのみを対象にするなら Panel か UserControl に貼り付けて 必要なコントロールへのアクセスを容易にすればいいよ。
707 名前:705 [2009/04/04(土) 21:54:17 ] ん〜じゃあ無理か Panelのリストを管理するとまた手間がかかりますしねえ・・・ どうもありがとうございました
708 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:05:22 ] 動的に作成する場合でもIList<>に入れればいいし、 あらかじめポトペタならコントロールが限られてるから どちらにしても最低限のループでいけるんじゃないの?
709 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:16:50 ] Linqでコントロールの種類ごとに連想配列に分配するクエリを作れば?
710 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:29:30 ] >>702 ないよ
711 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:12:49 ] Form activeChild = this.ActiveMdiChild as Form; if (activeChild != null) { activeChild.Controls.Where(c => c is TextBox).ToList<TextBox>().ForEach(t => { // 処理 }); } かえって煩わしいな。
712 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:29:55 ] >>711 ん? 実験してみようとしたのだが、インテリセンスにWhere()が表示されないのだがなんでだ?
713 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:42:19 ] ControlCollectionがIEnumerable<Control>を実装してないからか?
714 名前:デフォルトの名無しさん [2009/04/05(日) 00:43:46 ] だな 気がつかなかった!すげー便利じゃん!と思ったのにorz
715 名前:n [2009/04/05(日) 00:52:48 ] 今までたくさんのサイトから通報者つのりあと少し です こいつは違反出品で昨日二度削除されました auok.auone.jp/_ev?tr=83751566&et=2 空き巣に入られた?以上では‥ 薔薇チョコ洋子さんは靴の転売や上履き二回削除されてるのに 今回は長期使用の文を消して書いてます 悪質なので評価欄の誹謗中傷の理由で通報お願いします auok.auone.jp/item/item_189662269.html?u=4682520 わいせつ物 auok.auone.jp/item/item_189667641.html?u=4682520 わいせつ物 三箇所違反ですのでよろしくお願いします
716 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 02:53:12 ] this.ActiveMdiChild.Controls.Cast<Control>().Where()とか?
717 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:03:10 ] クラス内の自動プロパティを初期化したいのですがコンストラクタ内でするしかないのでしょうか? 例えば public string Name{get;set;} というものがあって、Nameは始めはnullですが、""に初期化しておきたいのです。 フィールドでしたら private string Name = ""; と出来ます。 プロパティの量だけコンストラクタにも初期化する量が増えてしまうのでフィールドのように出来れば一度に初期化したいのですが方法はあるのでしょうか?
718 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:03:27 ] >708 がベストだろ
719 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:10:31 ] クラスを継承したときに基本クラスのメソッドにコードを追加するように書くにはわかりました。
720 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:26:10 ] >>717 ありません 自動プロパティの使用をやめるか普通にコンストラクタで初期化してください
721 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:52:29 ] >>717 リフレクションでstring型のプロパティを一括初期化できなくもないがバグの元だな
722 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:58:22 ] そのためのオブジェクト初期化子なんだろうか
723 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 09:59:50 ] ヘジさんが自動プロパティに必死で抵抗してたのは直接初期化できないからなのかな
724 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:12:36 ] 自動プロパティって、文法的にインターフェースでの宣言と一緒なのがちょっと気になるっちゃ気になる。 int Method(); とだけ書いたらメソッドの中身ができちゃうようなもんだからなぁ。 パッと見同じだけど全然意味の違うものってのは、 ミスの原因だし、読むときの混乱招くから。
725 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:12:47 ] コンストラクタで初期化するくらいなら、 タイピング量的に自動プロパティである必要がぜんぜんないな
726 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:14:42 ] もう、自動プロパティを自動で普通のプロパティに展開するユーティリティを使えばいいよ
727 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:22:42 ] private string _test; public string Test { get _test; set _test; } こういう糖衣構文を可能にするだけでよかったんだよ
728 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:26:55 ] 糖衣構文といいたいだけのやつ増えすぎ
729 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:29:42 ] 構文糖を可能にするだけでよかったんだよ
730 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:30:46 ] public property string Test = ""; でいいんじゃないの public readonly property string Test = ""; とか
731 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:36:05 ] public string Test { get GetTest(); set SetTest(value); } も可能そうだな
732 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:41:00 ] >>731 それは意味がわからない。普通にかけばいいだろ public string Test { get { return GetTest(); } set { SetTest(value); } }
733 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:41:50 ] インターフェイスにプロパティを宣言するときの書き方と合わせたかったんだろ 美学ってやつなんだろう
734 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:48:09 ] たとえ美学でも、読み取り専用にするprivate set;はせっかくの省力構文を台無しにしているな public string Test { get; } これで何がまずいのだろう
735 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:48:47 ] event の構文が event DelegateType Variable; event DelegateType Variable { add { ...] remove { ...} } なのを考えると、 property VarType Variable; property VarType Variable { set { ... } get { ...} } がよかった気もするなぁ。
736 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:50:10 ] >>732 楽になるじゃん それに変数とメソッドを同時に書くこともある public string Test { get GetTest(); set _test; }
737 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:52:33 ] property Name: string read FName write FName; もうこれでいいよ
738 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 10:54:11 ] >>735 それいいよね 読み取り専用プロパティは readonly property VarType Variable; にすればいいし
739 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 11:03:07 ] >>734 初期化も何もできないじゃん
740 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 11:26:12 ] >>739 private set;と書いたことにする
741 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 11:44:34 ] それなら>>735 スタイルにしてgetも書かないようにしないとおかしい アクセサを宣言する意味でgetやsetを書いてるのに
742 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:04:59 ] >>740 ( ゚д゚ )
743 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:08:15 ] アクセス修飾子をpublicとprivateだけと思ってる奴が多いようだな
744 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:25:18 ] そんな奴いないだろw もともとはプロパティのアクセサにアクセスレベルは指定できなかったんだよ public get; protected set;みたいなのはそもそも想定されてなかった だから別に>>735 の形になっててもおかしくはない
745 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:13:05 ] addとremoveが必須なeventとgetとsetは片方あればいいプロパティじゃ初めから条件が違うな
746 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:55:27 ] 話の流れを全部理解しているわけじゃないが、 そういうシンメトリックかどうかって話じゃないだろうw 素直に(VB方式ともいう)propertyってキーワードを導入しておいた方が 可読性の観点からは好ましかったんじゃないかって話なんじゃないの?
747 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:23:51 ] でもevent 型 名前;と型 名前 { get; set; }じゃ差がありすぎるからなあ イベントを理解する上でプロパティとの類似性はかなり重要なのに 構文上全然違う種類のものになっちゃってるのはさすがに
748 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:43:42 ] そういや、結構いろんな言語に精通してる同僚が最近 C# 触り始めたんだけど、 event 知らずに普通にデリゲート型のプロパティ使ってたなぁ。
749 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:51:16 ] イベントって機能がデリゲートで実現されていることを知らずにイベントを 使ってるって話ならありそうだが、デリゲート押さえてるのにイベント知らない、 なんてこと普通はありえん気がするけどね。
750 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:55:20 ] eventって別に必要ない機能だろ
751 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:58:49 ] javaなんかでよく出てくるgetHoge, setHogeパターンを言語に組み込んだのがプロパティ 同様にaddHogeListener, removeHogeListenerパターンを言語に組み込んだのがイベント
752 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:29:37 ] 言語に組み込む組み込まないの話ではないだろ
753 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:49:33 ] >>749 「デリゲートはイベント処理用のもの」って認識だとそうなんだけど、 「関数ポインタの便利版」って認識だと、 関数ポインタのプロパティでイベントハンドラ取ればいいやってなってもおかしくないかと。
754 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:56:59 ] もしプロパティを使うならデリゲートのコレクションを返すべきだろ button.ClickEventHandlers.Add(new EventHandler(button_Click)); これなら意味的には同じ
755 名前:754 mailto:sage [2009/04/05(日) 23:59:32 ] 外からの要素へのアクセスはできないようにしないといけないよもちろん マルチキャストでいいだろと突っ込まれそうだから一応
756 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:00:30 ] Formsのコントロールの初期化をデザイナーで作っているところなんだが、 ツールバーのボタンが横に並んだ1つづりのPNGファイルを ImageListを使って切り出して使おうとしているのだがうまくいかない。 System.Windows.Forms.ImageList il = new System.Windows.Forms.ImageList(); il.TransparentColor = System.Drawing.Color.Transparent; il.ImageSize = new System.Drawing.Size(24, 24); il.Images.AddStrip(Resources.tool); こんな風に書いてデザイナーに読ませると、AddStrip()が認識できずに落ちてしまうようだ。 仕方がないのでpartialされたForm本体側で追加で初期化してるんだが、当然ながらデザイナーではプレビューできない。 画像の切り出し、切り出したチップをそれぞれのコントロールで使用したいんだがどうしたらいいだろうか。
757 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:10:38 ] >>748 eventをつけた場合とつけない場合は何が違うのですか? public event EventHandler Unko; public EventHandler Unko
758 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:13:42 ] >>757 ググれかす 見た目としては、eventだと外から行える操作がデリゲートの追加と削除だけになる。
759 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:17:51 ] >>757 Unkoの硬さが違ってくる
760 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:23:11 ] >>758-759 ありがとう。 何となく分かったよ Unkoの硬さが+=と-=だけになるってことですね
761 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 00:28:52 ] >>756 デザイナで設定するのは無理なんじゃないの とりあえずImageListプロパティだけ設定して,Tagプロパティにインデックスを入れといて 後でコードから舐めてImageIndexプロパティに設定し直すとか
762 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:04:40 ] >>761 ありがとう。「無理」という返事を聞いてある意味安心した。 どうせデザイナーで作る部分はある程度静的な割付になるので、わざわざTagに入れてループをまわさなくても、 ImageList.Images プロパティをControl.Image に直接代入していくだけで十分だね。
763 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:22:48 ] >>762 ImageList継承して"ImageStrip"のようなプロパティを追加するとか、 あるいは最初から目的のイメージを持たせちゃうとかすれば出来る気もする。 っていうか、なんでわざわざそんなC#向きでない作り方をするんだろう。 なんでも道具にあった作り方ってあると思うんだけど。
764 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:24:20 ] あーImageListってシールされてるのか。。
765 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:59:32 ] String型がシールされてる上にIStringのようなインターフェイスもないってどういうこと? String型に限らずやたらシールされると拡張できなくて異常に不便
766 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:02:16 ] C#の入門誌のオススメ教えて
767 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:04:16 ] C#に入門書は必要ない ぐぐれば腐るほどでてくるからな・・・ 強いて言えば逆引き系のものがいいよ
768 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:04:39 ] 継承は最低の方法だってみんな分かって来てるじゃない それはともかくStringはIEnumerable<char>として扱うと便利だよ
769 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 03:31:43 ] >>763 コントロールで使う画像の処理をImageListに任せるのは、 Win32SDK時代から続く古式ゆかしいお作法なんだ。
770 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 08:32:28 ] > それはともかくStringはIEnumerable<char>として扱うと便利だよ これは気づかなかった。ありがとう
771 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:03:50 ] デザイナーいるとかうらやましいなおい・・・・
772 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:26:25 ] >>765 恥ずかしいレスだなおいw
773 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:31:03 ] >>771 それはボケなのか……?
774 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 10:42:32 ] Stringがsealedなのはimmutableにするため 変更できない方が扱いやすいから
775 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 17:54:34 ] 扱いやすいっていうか、継承を禁止しないとイミュータブルであることを保証できない。
776 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 18:04:25 ] なんとなくだが、>>774 は "stringはimmutableであった方が扱いやすい" と言いたかったのではないかと思う。
777 名前:デフォルトの名無しさん [2009/04/06(月) 21:19:49 ] >>766 洋書なら色々あるけど、邦訳版が出てないのが多い・・・。
778 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 02:18:55 ] C#って検索数がいまいちなんだよね。 なんで?
779 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 02:34:22 ] >>778 記号とか入いってるとかは検索エンジン的にマイナスな気がする。 あと、なんだかんだいって後発だしね。 それと、一般名詞そのまま使ってるrubyとかと比べりゃそりゃ少なくなる。
780 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 03:42:38 ] 思いつくままに検索してみた。言うほど少なくは無いようだが php の検索結果 約 9,700,000,000 件 javascript の検索結果 約 680,000,000 件 vb の検索結果 約 657,000,000 件 java の検索結果 約 377,000,000 件 scheme の検索結果 約 107,000,000 件 ruby の検索結果 約 102,000,000 件 c++ の検索結果 約 101,000,000 件 perl の検索結果 約 88,000,000 件 c# の検索結果 約 63,900,000 件 python の検索結果 約 62,300,000 件 delphi の検索結果 約 49,500,000 件 lisp の検索結果 約 8,290,000 件 fortran の検索結果 約 7,720,000 件 cobol の検索結果 約 6,530,000 件 c++/cli の検索結果 約 4,680,000 件
781 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 03:54:22 ] >>780 ごめんそれ違う。 漏れが言ったのは、グーグルトレンドの方。
782 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:47:38 ] >>780 発想は面白いよ発想は
783 名前:sage mailto:sage [2009/04/07(火) 13:13:32 ] vb.net の private shared は C# でいうとなんですか? private partial ? private protected?
784 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 13:17:51 ] private static
785 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 13:19:16 ] thx!
786 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:11:03 ] VB.netの存在意義がわからない 初心者向けならジェネリックやLinqの拡張をすべきではないと思うんだが・・・
787 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:12:59 ] VB.NETはVBプログラマ用の隔離病棟もしくはオブジェクト指向リハビリ施設
788 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 14:13:04 ] >>786 それは、貴方の考えた存在意義と違うってだけでしょう。
789 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:15:55 ] C#>VBってのはC#でオブジェクト指向を勉強した奴がやけに言いたがるようだけど 他から見たらチェイサーとクレスタ
790 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:24:42 ] そりゃ.NETがベースにあるからだろ
791 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:28:30 ] .NETのWebBrowserコンポーネントで RichTextBoxのSelectionColorプロパティみたいに、文字列をドラッグしたときの選択色を変える方法ありませんか?
792 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 05:02:52 ] Microsoft Visual C++ Express Edition このコンパイラで一度「デバッグ無しで開始」でコンパイル成功するとソースを書き換えてもプログラムが変わらないようです 今までは少しソースを書き換えようと思ったら新規作成で新しいソース作ってコピペを繰り返してたんですがいい加減ソースの管理がキツいです 誰か助けてください
793 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 05:09:03 ] バイト代は出ますか?
794 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 05:14:13 ] >>792 全ては君の勘違い
795 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 06:02:20 ] >>792 『Microsoft Visual C# Express Edition』で開発していると仮定しての話だが、(スレタイ読めよ!) 確かにVC++と違って C#の開発のときはアプリの実行ボタンでビルドが更新されないことがあるようだ。 しかし、コンパイルないしビルドボタンを押せば問題ないはず。 デバッグ無しで開始 や デバッグ実行 のボタンとは別にあるぞ。
796 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 09:47:57 ] >>792 リビルドしてみた?
797 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 09:53:21 ] むしろ自動ビルドしてるならクリーンアップ?で さもなくばexploreでファイル削除
798 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:22:07 ] .net のプログラムを C#に書き換えています。 .net におけるshadow(オーバーライドの一種で引数も返り値も変更可能なもの) はC#だとどういう風にトランスレートすればいいんですかね?
799 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:26:15 ] .net のプログラムってなに?VB?
800 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:27:01 ] もちろんC#
801 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:27:15 ] 隠蔽のnew
802 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:30:02 ] vb.netっす
803 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:32:06 ] VBではoverridesとshadowが別なのが良くわかんないね。 overridesがほぼC#のnewと同じ。 shadowとまったく同じものはなかったかと。
804 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:35:20 ] それでは Public Shadow Property X は public new override X {get return ...みたいな感じで書けばいいってことですか?
805 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:36:43 ] ああちがうか、そもそもoverrideとoverridesのちがいがわかってませんでした。 勉強してきます。
806 名前:デフォルトの名無しさん [2009/04/08(水) 15:43:35 ] WebBrowserのDocumentで、mshtmlを経由してiframeの中身にアクセスしようとするとUnauthorizedAccessExceptionになるのですが、 これを回避するにはどうすればいいのでしょうか。
807 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 18:51:30 ] public class Bar inherits Foo overrides sub f() end sub shadows sub g() end sub overloads sub h() end sub end class をリフレクションで調べるとこういう違いがあるようだべさ。 public class Bar : Ansi,Auto extends public class Foo : Ansi,Auto public virtual Void f() public Void g() public Void h(),HideBySig public constructor Void .ctor(),SpecialName C#の場合全部のメソッドにHideBySigが付いてるんだよね。
808 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:28:38 ] すみません。馬鹿な質問いいですか? フォームにラベルがいくつかありまして、それぞれ lbl001 lbl002 lbl003 という名前になっています。 で引数に001とか002を渡すと通し番号の一致するラベルのテキストを""に変えるメソッドを 作りたいのですが、どうしたら良いのでしょうか? 解りにくい文章ですみませんが、お願いします。
809 名前:808 mailto:sage [2009/04/08(水) 19:30:47 ] private void hoge(string number) { lbl+number.text=""; } という感じなのですが・・・
810 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:36:25 ] public void ClearLabel(string labelName) Control control = this.Controls.Find(labelName, false)[0].Text = ""; thisはForm
811 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:39:39 ] ああ、最初の変数宣言はイラネ public void ClearLabel(string labelName) Control control = this.Controls.Find(labelName, false)[0]; control.Text = ""; または public void ClearLabel(string labelName) this.Controls.Find(labelName, false)[0].Text = "";
812 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:42:38 ] public void Func(int number) { string name = "lbl" + number.ToString("000"); foreach (FieldInfo info in this.GetFields()) { if (name == info.Name) { Label label = (Label)info.GetValue(this); label.Text = ""; } } }
813 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:43:55 ] ラベルを配列に入れりゃいいんじゃないの
814 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:46:45 ] >>808 そういうことをするならラベルをコレクションで管理しとけ リフレクションを使うのはあくまで応急処置 最初からコレクションで生成してもいいし、どうしてもデザイナを使いたいなら以下のようにする var labels = new List<Label>(); labels.Add(lbl001); labels.Add(lbl002); labels.Add(lbl003);
815 名前:808 mailto:sage [2009/04/08(水) 19:58:30 ] みなさまありがとうございました! >>811 public void ClearLabel(string labelName) this.Controls.Find(labelName, false)[0].Text = ""; この場合labelNameは"002"とかでもlbl002を見つけてくれるのでしょうか? >>812 なるほど。僕でも判る解りやすいコードですね >>814 おっしゃる通りです。以降気をつけます
816 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 20:21:07 ] >>815 見つけてくれないからlabelNameを自分で作成すれ
817 名前:808 mailto:sage [2009/04/08(水) 21:27:47 ] >>816 ありがとうございました! 僕はデザイナでしかコントロールを置いたことがないので 名前の重複がありうるなんて知りませんでした。 なので名前のわかっているコントロールを探すなんてナンセンスな感じを うけましたが、自分が無知だっただけでした!
818 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:49:25 ] 何も解かってないことが解かった
819 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:54:33 ] >>817 が何を言ってるのかまるでわからない・・・
820 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:56:19 ] なんとなく理解できる俺もほ乳類を名乗って問題無いのか・・・
821 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:41:34 ] >819 多分Nameプロパティとフィールド参照名をごっちゃにしてるんだろ。 >817 参照名はスコープ内で重複しないけど、コントロールごとに設定できるNameプロパティの値は重複可能。 デザイナーは勝手に「Name = 参照名」に設定してるから一意に見えるだけ。自前でNameを設定してなければ、 int num = 2; Label label = this.Controls[ "lbl" + num.ToString("000")] as Label; if( label != null ) { 処理 } else { エラー処理とか } 自前のコードでNameを設定してて同じNameの奴が重複してたら、最初に追加されたやつ(普通はデザイナーが作った方)が返ってくる。 どうしてもフィールド名のほうでアクセスする必要がある場合は、>812みたいにリフレクションを使う。 でもクラス内で完結することに使うことはまずない。
822 名前:デフォルトの名無しさん [2009/04/09(木) 00:09:57 ] Regexクラスを使った正規表現って 交差演算子「&&」は使えませんよね?
823 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:12:33 ] 古語でも可也
824 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:18:44 ] >>822 MSDN読め。