2012-03-01 19 views
1

私のwinformsアプリケーションでは、フォーム要素(ラジオボタン、ラベルなど)を動的に作成します。私はそのnameプロパティで特定のフォーム要素にアクセスする必要があります。簡単な解決策は、Form1.Controlsを使用して各フォーム要素を反復し、そのnameプロパティをチェックすることです。しかし、私の意見では、この解決策は効果的ではありません。リフレクションを使用して特定のフォーム要素にアクセスすることは可能ですか?フォーム要素に動的にアクセスする

+0

反復子どもが反射より効果的ではないと思われる理由は何ですか? – Archeg

+0

.Net4を使用している場合は、コントロールインデクサーのオーバーロードがあります。form1.Controls ["ControlName"] –

答えて

4

あなたは、あなたがそのタイプを知っている場合

myForm.Controls.Find("ControlName",true); 

を提供find()メソッドを使用できるコントロールのコレクションへのアクセスを持っている場合 - あなたはそれを唱えるだけでなく

TextBox t = (TextBox)myForm.controls.Find("txtFirstName",false); 

trueまたはすることができますfalseは、子コントロールを検索するように関数に指示します。

関連する問題