首页 > 后端开发 > C++ > 如何按名称在C#中访问动态生成的Windows表单控件?

如何按名称在C#中访问动态生成的Windows表单控件?

Susan Sarandon
发布: 2025-01-27 13:06:09
原创
628 人浏览过

How to Access Dynamically Generated Windows Forms Controls by Name in C#?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板