Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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# 如何通过将myLable1.Text作为变量调用来更改它_C#_Labels - Fatal编程技术网

C# 如何通过将myLable1.Text作为变量调用来更改它

C# 如何通过将myLable1.Text作为变量调用来更改它,c#,labels,C#,Labels,让我先说一句,我学c#才几天。除了基本的JavaScript之外,我没有其他编程经验,所以我仍然不确定很多术语是否正确。关于这个问题 假设我有10个标签;myLabel1、myLabel2、myLabel3等等,我有一个变量叫I 那么,如何通过切换变量I的结束号来更改myLabel的.Text呢?我试着制作一个新的字符串: string labelNumber = "myLable" + Convert.ToString(i); 然后: lableNumber.Text = "some tex

让我先说一句,我学c#才几天。除了基本的JavaScript之外,我没有其他编程经验,所以我仍然不确定很多术语是否正确。关于这个问题

假设我有10个标签;myLabel1、myLabel2、myLabel3等等,我有一个变量叫I

那么,如何通过切换变量I的结束号来更改myLabel的.Text呢?我试着制作一个新的字符串:

string labelNumber = "myLable" + Convert.ToString(i);
然后:

lableNumber.Text = "some text";
显然,这是行不通的,因为.Text在lablenmber上不是一种已知的方法。

C#因为大多数其他编译语言都不允许您像许多脚本语言那样轻松地执行此操作

如果要通过字符串访问控件,则需要在
词典中收集控件,或者如果只关心
标签,则需要在
词典中收集控件:

Dictionary<string, Label> labels = new Dictionary<string, Label>();

// you can do this in a loop over i:
Label newLabel = new Label();
newLabel.Name = "myLabel" + Convert.ToString(i);

// maybe set more properties..
labels.Add(newLabel.Name, newLabel );     // <-- here you need the real Label, though!
flowLayoutPanel1.Controls.Add(newLabel )  // <-- or wherever you want to put them
请注意,要将它们添加到
字典
,(或
列表
,如果您喜欢通过索引访问它们,则需要在循环中创建它们时进行添加,因为以后无法访问它们;至少不能没有,这在国际海事组织看来是矫枉过正的


还请注意编译器的变量名(不是字符串而是标记)与其
名称
属性之间的差异,是一个字符串,但不是,用于识别变量,因为它不必是唯一的,并且可以在任何时候更改。

我想你正在尝试这样做:

// Create N label xontrols
Labels[] labels = new Labels[n];

for (int i = 0; i < n; i++)
{
    labels[i] = new Label();
    // Here you can modify the value of the label which is at labels[i]
}

// ...

labels[2] .Text = "some text";
//创建N个标签xontrols
标签[]标签=新标签[n];
对于(int i=0;i
字符串不是标签。不能像使用标签一样使用字符串。需要访问控件吗?你可以保存它们的列表或字典。这是哪种技术-asp.net WebForms,Windows Forms。。。?
// Create N label xontrols
Labels[] labels = new Labels[n];

for (int i = 0; i < n; i++)
{
    labels[i] = new Label();
    // Here you can modify the value of the label which is at labels[i]
}

// ...

labels[2] .Text = "some text";