在 C# 中按名稱存取 Windows 窗體控制項
在 Windows 窗體開發中,一個常見的場景是需要根據控制項名稱動態存取控制項。當以程式設計方式產生控製或處理複雜的介面時,這非常有用。
問題:
我有一個名為「myMenu」的動態產生的 ToolStripMenuItem。如何以程式方式存取它,就像它是窗體的成員一樣?
解答:
要按名稱存取 Windows 窗體控件,可以使用 Control.ControlCollection.Find 方法。此方法接受一個字串參數,表示要尋找的控制項的名稱。
<code class="language-csharp">ToolStripMenuItem myMenu = (ToolStripMenuItem)this.Controls.Find("myMenu", true)[0];</code>
在這裡,我們首先將 Control.ControlCollection.Find 的結果強制轉換為我們正在尋找的特定控制項類型 (ToolStripMenuItem)。然後,我們存取傳回數組中的第一個元素,因為 Find 方法傳回一個符合控制項的陣列。
範例
以下程式碼片段示範如何從 XML 檔案動態產生 ToolStripMenuItems 並按其產生的名稱存取它們:
<code class="language-csharp">// 加载 XML 文件并创建 ToolStripMenuItems XDocument doc = XDocument.Load("menu.xml"); foreach (XElement menuitem in doc.Root.Elements("MenuItem")) { string name = menuitem.Attribute("Name").Value; ToolStripMenuItem item = new ToolStripMenuItem(name); // 在此处添加事件处理程序或其他逻辑... this.Controls.Add(item); } // 按名称访问菜单项 ToolStripMenuItem myMenu = (ToolStripMenuItem)this.Controls.Find("myMenu", true)[0];</code>
在此範例中,可以存取並操作 myMenu ToolStripMenuItem,就好像它是窗體的直接定義成員一樣。
以上是如何在 C# 中按名稱存取動態產生的 Windows 窗體控制項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!