如何在变量名上使用变量?

时间:2013-04-27 08:09:51

标签: c#

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循环中编写

4 个答案:

答案 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)

你做不到。您必须将它们存储在字典列表中并以这种方式访问​​它们。所以

  • 将控件添加到列表/词典
  • 在你的for循环中
  • ,通过索引访问它们