.NETで画面に張り付けたコントロールを、コントロール名の文字列で探したい

なんらかの動的に状態が変わるような処理をして、それを画面に反映する時に、
画面のコントロールオブジェクトを文字列で探せたら便利なのに・・・とか思うことがたまにある。

.NETならリフレクションを使えばこういったことも可能ですが、もうちょっと簡単に済ませたい場合・・・
Controls.Findメソッドが素敵な結果をもたらしてくれる。

’探したいコントロール名の文字列
Dim ctrlName As String = "EVA-02"
’コントロールの検索
Dim ctrls As Control() = Me.Controls.Find(ctrlName, true)
’ない場合はメソッドを抜けたりする。
If ctrls.Length = 0 Then Return

’キャストしてなんらかの処理を行う
DirectCast(ctrls(0), TextBox).Text = "ASUKA"

色々と応用が利くので便利。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中