Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串为按钮创建变量_C#_.net_Winforms_Button - Fatal编程技术网

C# 从字符串为按钮创建变量

C# 从字符串为按钮创建变量,c#,.net,winforms,button,C#,.net,Winforms,Button,所以我想从一个字符串创建一个按钮。如果按钮已经创建,我知道如何通过字符串访问它,但事实并非如此 如下所示:按钮“myButton”=新按钮() 但这当然不起作用,可以这样做吗?假设您使用字符串查找控件,请注意MSDN条目: 按控件的Name属性搜索控件,并生成匹配的所有控件的数组 它不关心按钮分配给什么(如果有)变量名(也不知道或以任何有用的方式使用它),它只关心按钮的name属性。所以你可以这样做: var IDontCareWhatThisIsCalled = new Button() {

所以我想从一个字符串创建一个按钮。如果按钮已经创建,我知道如何通过字符串访问它,但事实并非如此

如下所示:
按钮“myButton”=新按钮()

但这当然不起作用,可以这样做吗?

假设您使用字符串查找控件,请注意MSDN条目:

按控件的Name属性搜索控件,并生成匹配的所有控件的数组

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

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

var thatButton = someForm.Controls.Find("myButton");
但是,如果有一组按钮需要按名称查找,那么最好的选择可能是将它们放在
字典中

Dictionary按钮Dictionary=newdictionary();
// ....
var b=新按钮();
buttonDictionary[“myButton”]=b;
someForm.Controls.Add(b);
// ...
//要稍后检索,请执行以下操作:
var thatButton=buttonDictionary[“myButton”];//注意,如果密钥不存在,它将
//抛出一个异常-所以先检查

您能否详细说明“从字符串创建按钮”的含义?您是否试图以某种方式将字符串与按钮关联?@E.Moffat很抱歉标题不明确,我想从字符串创建按钮名称。正如我在示例中所示。按钮“myButton”=新按钮();“如果按钮已经创建,我知道如何通过字符串访问该按钮”您打算怎么做?我想你会发现他们是通过按钮的
Name
属性来搜索的,根本不关心局部变量名是什么。例如,搜索控件的
名称
,它不同于任何局部变量名称。听起来,您试图做的是从字符串中命名变量。。。这与创建按钮无关。不能从稍后(编译后)确定的字符串(如
“myButton”
)创建代码标识符
myButton
。最好使用字典之类的关联容器,或者在
按钮上设置
Name
属性。
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