如何创建现有按钮列表?
How to create a List of Existing Buttons?
我使用工具箱在 Windows 表单上创建了 100 个按钮,我为它们的每一行和每一列指定了一个特定的名称,例如第一行称为 A,第一列称为 1,最后一列行以字母 J 结尾,最后一列以数字 10 结尾。所以它显示为 10x10 数组。我想要做的是将这些按钮添加到带有循环的列表中。在设计中的属性上,我给了它们相同的名称以使其更容易。将它们添加到列表中的最佳方式是什么?
它们已经在一个“列表”中,因为它们必须是某些现有控件 .Controls
集合的成员才能出现在表单上,您可以查询它。假设它们只是直接在表单上,而不是在面板等中:
this.Controls.OfType<Button>()
如果您真的想要 List<Button>
,请在末尾添加 .ToList()
--
如果您不想在表单上返回其他按钮,请选择您确实想要的那些按钮的共同点,例如“它们都有一个 two-character 名称”:
this.Controls.OfType<Button>().Where(b => b.Name.Length == 2)
当然,如果您还卡住了一个名为 OK 的按钮,那么这就失败了 - 但是“其他按钮没有的共同点”是 您可以影响的东西 - 如果它被意外拾起,请重命名您的确定按钮
如果它们位于自己的面板中,这可能是将它们与其他按钮隔离的好方法:
thePanelName.Controls.OfType<Button>()
我使用工具箱在 Windows 表单上创建了 100 个按钮,我为它们的每一行和每一列指定了一个特定的名称,例如第一行称为 A,第一列称为 1,最后一列行以字母 J 结尾,最后一列以数字 10 结尾。所以它显示为 10x10 数组。我想要做的是将这些按钮添加到带有循环的列表中。在设计中的属性上,我给了它们相同的名称以使其更容易。将它们添加到列表中的最佳方式是什么?
它们已经在一个“列表”中,因为它们必须是某些现有控件 .Controls
集合的成员才能出现在表单上,您可以查询它。假设它们只是直接在表单上,而不是在面板等中:
this.Controls.OfType<Button>()
如果您真的想要 List<Button>
,请在末尾添加 .ToList()
--
如果您不想在表单上返回其他按钮,请选择您确实想要的那些按钮的共同点,例如“它们都有一个 two-character 名称”:
this.Controls.OfType<Button>().Where(b => b.Name.Length == 2)
当然,如果您还卡住了一个名为 OK 的按钮,那么这就失败了 - 但是“其他按钮没有的共同点”是 您可以影响的东西 - 如果它被意外拾起,请重命名您的确定按钮
如果它们位于自己的面板中,这可能是将它们与其他按钮隔离的好方法:
thePanelName.Controls.OfType<Button>()