2.0以降で、ControlCollection.Findを使用する方法リフレクションによる方法Nameプロパティを使用する方法この記事への評価、コメントフォームに配置されているコントロールを名前で探す例えば、フォームに"TextBox1"という名前のコントロールが配置されている時に、"TextBox1"という文字列でそのコントロールを検索する方法を考えます。2.0からは、ControlCollection.Findメソッドが追加されました。Findメソッドは、指定した値と同じNameプロパティを持つコントロールを探します。以下のコードは、フォームクラス内に記述することにより、フォームに配置されているコントロールから"TextBox1"という名前のコントロールを探し、見つかれば、Textプロパティを変更するものです。VB.NETJavaScriptを有効にしてくださいコードを隠すコードを選択'TextBox1をさがす。子コントロールも検索する。IfC#JavaScriptを有効にしてくださいコードを隠すコードを選択//TextBox1をさがす。子コントロールも検索する。"*";VB.NETでは大文字、小文字を区別せずに検索しますが、C#では区別して検索するようです。このメソッドはあくまでコントロールのNameプロパティで検索するだけで、そのコントロールのメンバ名で探すわけではありません。Studioを使用してすべてのコントロールを配置している場合は問題となることはまずないと思いますが、動的に自分でコントロールを配置した場合は、Nameプロパティを適当に設定しないと、検索されません。複数のコントロールが同じNameプロパティを持つ場合は、複数のコントロールが返されます。同様の機能は、インデクサとしても提供されています。VB.NETJavaScriptを有効にしてくださいコードを隠すコードを選択'TextBox1をさがす。子コントロールは検索しない。IfC#JavaScriptを有効にしてくださいコードを隠すコードを選択//TextBox1をさがす。子コントロールは検索しない。"*";この場合は、戻り値がコントロールの配列とはなりませんので、複数のコントロールに同じNameがつけられているときは、そのうちどれかしか返されません。子コントロールまでは検索しません。Nameプロパティではなく、メンバ名そのもので検索する方法は、以下の「リフレクションによる方法」をご覧ください。1.1以前で同様の事を行う方法は、こちらです。Studioのフォームデザイナなどを使ってフォームにコントロールを追加した時、C#では、コントロールの"(Name)"プロパティに指定された名前と同じ名前のフィールドがフォームクラスに追加され、このフィールドにそのコントロールのオブジェクトが格納されます。VB.NETでは、WithEventsが付いていると、フィールドの名前は"(Name)"の頭に"_"が付いた名前になり、"(Name)"はプロパティの名前となります。リフレクションを使ってフォームクラスのフィールドやプロパティを名前で探し、見つかればそのフィールドの値を取得するという方法で問題が解決できます。フォームに配置されたコントロールを名前で探すメソッドの例(FindControlByFieldNameメソッド)を紹介します。<returns>見つかった時は、コントロールのオブジェクト。見つからなかった時は、null(VB.NETではNothing)。<returns>見つかった時は、コントロールのオブジェクト。見つからなかった時は、null(VB.NETではNothing)。fi.GetValue(frm);}次に、自分自身のフォームに配置されている"TextBox1"という名前のテキストボックスコントロールを探し、そのTextの内容を変更する例を示します。2.0以降では、ControlCollection.Findメソッドで同様のことができます。こちらをご覧ください。Studioのフォームデザイナでコントロールを追加すると、"(Name)"プロパティはそのコントロールのNameプロパティと同じになりますので、単純に指定された文字列のNameプロパティを持つコントロールを探す方法も考えられます。実際にそうなる保障はありませんので、この方法は確実ではありません。第30号」で紹介しています。2.0以降で、ControlCollection.Findを使用する方法」を追加。this.Controls["TextBox1"];」のコメントが間違えていたのを修正。第30号」で紹介したものを編集したものです。)注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。Tipsをご利用いただく際は、注意事項をお守りください。共有するこの記事への評価この記事の評価を見る・評価するには、JavaScriptを有効にしてください。この記事へのコメントこの記事へのコメントの一覧を見るこの記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。設定JavaScriptを有効にしてください。