Heim >Backend-Entwicklung >C++ >Wie kann ich in C# dynamisch über den Namen auf Windows Forms-Steuerelemente zugreifen?
Dynamischer Zugriff auf Windows Forms-Steuerelemente nach Namen in C#
In C# werden Windows Forms-Steuerelemente normalerweise durch direkte Referenzierung des Steuerelementnamens abgerufen. Dieser Ansatz wird jedoch unpraktisch, wenn die Steuerung dynamisch generiert wird. Für diese Situation ist eine dynamischere Alternative erforderlich.
Um dynamisch über den Namen auf ein Windows Forms-Steuerelement zuzugreifen, können Sie die Methode Control.ControlCollection.Find
verwenden. Nehmen wir an, Sie haben ein dynamisch generiertes myMenu
mit dem Namen ToolStripMenuItem
. Sie möchten programmgesteuert über den generierten Namen auf dieses Menüelement zugreifen.
So erreichen Sie dies mit der Find
-Methode:
<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>Die Methode
Find
akzeptiert eine Zeichenfolge, die den Namen des Steuerelements darstellt. Es wird ein Array zurückgegeben, das Control
Objekte enthält, die diesem Namen entsprechen. In diesem Fall erhalten Sie ein Array mit myMenu
ToolStripMenuItem
. Anschließend können Sie dieses Array verwenden, um auf Steuerelemente zuzugreifen und diese zu bearbeiten. Hinweis: Der zweite Parameter der Find
-Methode ist auf true
gesetzt, was eine rekursive Suche nach Untersteuerelementen bedeutet. Wenn sich myMenu
nicht in einem direkten untergeordneten Steuerelement des aktuellen Formulars befindet, muss es auf true
gesetzt werden, um es zu finden. Wenn das Steuerelement nicht gefunden wird, ist controls.Length
0. Aus Sicherheitsgründen wird empfohlen, den Steuerelementtyp zu überprüfen, bevor Sie auf die Steuerelementeigenschaften zugreifen.
Mit der Methode Find
können Sie auf ein Steuerelement über seinen dynamisch generierten Namen verweisen und so einen flexiblen und effizienten Mechanismus für die Arbeit mit komplexen und dynamischen Formularen bereitstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# dynamisch über den Namen auf Windows Forms-Steuerelemente zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!