for (int f = 1; f <= 6; f++)
{
textBox{f+11} = (loto[f].ToString());
}
你好, 我正在努力学习c#。对不起这个noobish问题:)
为了更具特色,这就是我想要的:
编写类似代码的快捷方式:
textBox12.Text = loto[1].ToString();
textBox11.Text = loto[2].ToString();
textBox10.Text = loto[3].ToString();
textBox9.Text = loto[4].ToString();
textBox8.Text = loto[5].ToString();
textBox7.Text = loto[6].ToString();
此代码正在运行,但我想在for循环中编写
答案 0 :(得分:3)
您可以使用字典。
Dictionary<int, TextBox> dictionary = new Dictionary<int, TextBox>();
dictionary.Add(1, textbox1);
... // add the other textboxes
// access the dictionary via index
dictionary[f+11] = ...
答案 1 :(得分:1)
您可以使用List<TextBox>
并在构造函数中调用InitialiseComponent()
之后在构造函数中初始化它。
以下是:
首先在表单类中添加List<TextBox>
,如下所示:
private List<TextBox> textboxes = new List<TextBox>();
然后在构造函数中初始化列表,如下所示(将Form1
更改为表单构造函数的名称):
public Form1()
{
// ...
InitializeComponent();
// ...
textboxes.Add(textBox1);
textboxes.Add(textBox2);
textboxes.Add(textBox3);
// ...etc up to however many text boxes you have.
}
然后,当您想要访问文本框时,您可以这样做:
for (int f = 1; f <= 6; ++f)
{
textboxes[f+11].Text = loto[f].ToString(); // From your example.
}
答案 2 :(得分:1)
我不确定你的TextBox控件是否已经在你的表单上。如果没有,你想动态创建TextBox控件,你可以这样做:
for (int f = 1; f <= 6; f++)
{
Dictionary<int, TextBox> dict = new Dictionary<int, TextBox>();
dict.Add(f, new TextBox());
dict[f].Location = new Point(0, f * 20);
dict[f].Text = loto[f].ToString();
this.Controls.Add(dict[f]);
}
答案 3 :(得分:0)
你做不到。您必须将它们存储在字典列表中并以这种方式访问它们。所以