|
.NET TIPS Windowsフォーム上のコントロールを検索するには?[2.0のみ、C#、VB]デジタルアドバンテージ 遠藤 孝信2006/07/28 |
![]() |
|
|
|
Windowsフォーム上に配置されているコントロール群の中から、特定のコントロールをコントロールの名前(コントロールのNameプロパティの値)で検索するには、.NET Framework 1.xではフォームのControlsプロパティからすべてのコントロールを列挙して検索するしか方法はなかった。
これは例えば次のようなコードとなる。
| ||
| .NET Framework 1.xにおけるコントロールの検索方法(上:C#、下:VB) |
なおこのコードでは、PanelコントロールやGroupBoxコントロールなどのコンテナ・コントロール内に含まれるコントロールまでは検索できない。これについては「TIPS:Windowsフォーム上のすべてのコントロールを列挙するには?」を参照していただきたい。
フォームのControlsプロパティにセットされるオブジェクトは、コントロールのコレクションであるControl.ControlCollectionクラス(System.Windows.Forms名前空間)のオブジェクトだ*。
| * Control.ControlCollectionクラスはControlクラス内で定義されている内部クラス(インナー・クラス)。 |
.NET Framework 2.0では、このControl.ControlCollectionクラスにコントロールを検索するための2つの方法が新しく追加されている。
文字列が指定可能なインデクサ(Itemプロパティ)
その1つ目の方法は、Control.ControlCollectionクラスに新しく追加された、文字列をパラメータに取るインデクサ(VBではItemプロパティとしてアクセスされる)を使う方法である。
Control.ControlCollectionクラスのインデクサには、.NET Framework 1.xではパラメータとしてインデックス番号しか指定できなかったが、.NET Framework 2.0ではコントロール名が指定可能になっている。よって次のようなコードにより簡単にコントロールを検索できる。
| ||
| インデクサによるコントロールの検索(上:C#、下:VB) |
もちろんこの場合でも、コンテナ・コントロール内に含まれるコントロールまでは検索できない(次に述べる方法では可能)。
Findメソッド
2つ目の方法は、.NET Framework 2.0で新しくControl.ControlCollectionクラスに追加されたFindメソッドを使う方法だ。
このFindメソッドでは、第1パラメータに検索するコントロールの名前、第2パラメータにはフォーム上のすべてのコントロールから検索するかどうかをブール値(trueかfalse)で指定する。なお、戻り値はコントロールの配列となるので注意が必要だ。
| ||
| Findメソッドによるコントロールの検索(上:C#、下:VB) |
Findメソッドでは第2パラメータにtrueを指定すれば、コンテナ・コントロール内に含まれるコントロールも検索される。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:コントロール 使用ライブラリ:Formクラス(System.Windows.Forms名前空間) 使用ライブラリ:Control.ControlCollectionクラス(System.Windows.Forms名前空間) 関連TIPS:Windowsフォーム上のすべてのコントロールを列挙するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


