ホームページ >バックエンド開発 >C++ >C# で名前によって Windows フォーム コントロールに動的にアクセスするにはどうすればよいですか?

C# で名前によって Windows フォーム コントロールに動的にアクセスするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-27 13:16:09640ブラウズ

How Can I Dynamically Access Windows Forms Controls by Name in C#?

Windowsウィンドウコントロールの名前 c#では、通常、ウィンドウウィンドウコントロールは直接参照コントロール名によって取得されます。ただし、コントロールが動的に生成されると、この方法は非現実的になります。この状況には、より動的な交換方法が必要です。 名前に応じてWindows Windowコントロールに動的にアクセスするには、メソッドを使用できます。動的と呼ばれる

があるとします。名前を使用して、プログラミングによってこのメニュー項目にアクセスする必要があります。

以下は、この目的を達成するためにControl.ControlCollection.Findメソッドを使用する方法です。 myMenu ToolStripMenuItemコントロールの名前を示す文字列を受け入れる方法。名前に一致するオブジェクトを含む配列を返します。この場合、

を含む配列を取得します。その後、この配列を使用して、コントロールにアクセスおよび操作できます。 Find注:

<code class="language-csharp">string name = "myMenu"; // 注意这里需要用字符串字面量,而不是变量myMenu
Control[] controls = this.Controls.Find(name, true); //第二个参数true表示递归查找子控件
if (controls.Length > 0 && controls[0] is ToolStripMenuItem menuItem)
{
    // 访问并操作控件
    menuItem.Enabled = false; // 例如,禁用菜单项
}
else
{
    // 控件未找到
    Console.WriteLine("Control not found.");
}</code>
メソッドの2番目のパラメーターは

に設定されています。これは、子会社の再帰検索を意味します。 が現在のウィンドウの直接的なサブコントロールにない場合は、それを見つけるためにFindに設定する必要があります。 コントロールが見つからない場合、は0になります。 安全上の理由から、制御制御の属性にアクセスする前に、制御タイプを確認することをお勧めします。 Control myMenuこの方法では、その動的名を介してコントロールを参照できるため、複雑で動的なウィンドウを処理するための柔軟で効率的なメカニズムが提供されます。 ToolStripMenuItem

以上がC# で名前によって Windows フォーム コントロールに動的にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。