Windowsウィンドウコントロールの名前 c#では、通常、ウィンドウウィンドウコントロールは直接参照コントロール名によって取得されます。ただし、コントロールが動的に生成されると、この方法は非現実的になります。この状況には、より動的な交換方法が必要です。 名前に応じてWindows Windowコントロールに動的にアクセスするには、
があるとします。名前を使用して、プログラミングによってこのメニュー項目にアクセスする必要があります。
以下は、この目的を達成するためにControl.ControlCollection.Find
メソッドを使用する方法です。
myMenu
ToolStripMenuItem
コントロールの名前を示す文字列を受け入れる方法。名前に一致するオブジェクトを含む配列を返します。この場合、
を含む配列を取得します。その後、この配列を使用して、コントロールにアクセスおよび操作できます。 Find
注:
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."); }
に設定されています。これは、子会社の再帰検索を意味します。 が現在のウィンドウの直接的なサブコントロールにない場合は、それを見つけるためにFind
に設定する必要があります。 コントロールが見つからない場合、は0になります。 安全上の理由から、制御制御の属性にアクセスする前に、制御タイプを確認することをお勧めします。 Control
myMenu
この方法では、その動的名を介してコントロールを参照できるため、複雑で動的なウィンドウを処理するための柔軟で効率的なメカニズムが提供されます。 ToolStripMenuItem
以上がC# で名前によって Windows フォーム コントロールに動的にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。