我正在尝试以下代码:
for (int i = 0; i < students.Length; i++)
{
"student" + i.ToString().Text = students[i];
}
我已经有很多标签,每个标签的名称如下: student1 STUDENT2 学生三 。
但是我收到了这个错误: 错误1'字符串'不包含'文本'的定义,并且没有扩展方法'文本'接受类型'字符串'的第一个参数可以找到(你是否缺少using指令或程序集引用?)F:\ Homework \ Homework \ Form1.cs 161 46家庭作业
请帮忙吗??!
答案 0 :(得分:8)
您不能使用任何语言来拥有动态变量名称。
您希望拥有集合或数组控件。
类似的东西:
var studentControls = new List<Control>();
studentControls.Add(student1);
studentControls.Add(student2);
...
for (int i = 0; i < students.Length; i++)
{
studentControls[i].Text = students[i];
}
答案 1 :(得分:3)
使用Controls.Find(“student”+ i.ToString())
答案 2 :(得分:3)
这可能会有所帮助
Controls.Find(string.Format("student{0}", i));
更好的解决方案:
设置Tag
的{{1}}属性,如下所示:
Labels
我假设您的Student1.Tag = 1;
Student2.Tag = 2;
Student3.Tag = 3;
位于名为Labels
的容器控件中。使用此代码:
container
答案 3 :(得分:0)
通过执行i.ToString()
,您将获得一个字符串,该字符串没有Text :)属性。这就是造成你的例外的原因。
如果Students
是包含属性.Text
的控件列表,请使用该列表并删除其他ToString()
,删除.Text
。