从字符串为按钮创建变量

时间:2016-03-16 19:24:22

标签: c# .net winforms button

所以我想从字符串创建一个按钮。我知道如果已经创建了一个字符串按钮来访问一个按钮,但不是atm。

像这样:Button "myButton" = new Button();

但当然这不起作用,这可能吗?

1 个答案:

答案 0 :(得分:2)

假设您使用Docker Universal Control Plane按字符串查找控件,请记下MSDN条目:

  

通过Name属性搜索控件,并构建一个匹配的所有控件的数组。

它不关心按钮被分配给哪个(如果有的话)变量名称(它也不能以任何有用的方式知道或使用它),它只关心按钮的Name属性。所以你可以这样做:

var IDontCareWhatThisIsCalled = new Button()
{
    Name = "myButton"
};
someForm.Controls.Add(IDontCareWhatThisIsCalled);

然后:

var thatButton = someForm.Controls.Find("myButton");

但是,如果您有一堆按钮需要能够按名称查找,那么最好的选择可能是将它们放在Dictionary<string,Button>中:

Dictionary<string,Button> buttonDictionary = new Dictionary<string,Button>();
// ....
var b = new Button();
buttonDictionary["myButton"] = b;
someForm.Controls.Add(b);
// ...
// To retrieve later:
var thatButton = buttonDictionary["myButton"];   // Note if the key doesn't exist, it will
                                                 // throw an exception - so check first