3
for (int f = 1; f <= 6; f++)
{
    textBox{f+11} = (loto[f].ToString());
}

こんにちは、私は自分で c# を学ぼうとしています。この初心者の質問で申し訳ありません:)

より具体的にするために、それが私が欲しいものです:

そのようなコードを書くためのショートカット:

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

4 に答える 4

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] = ...
于 2013-04-27T08:12:53.223 に答える
1

List<TextBox>a を使用して、コンストラクターでそれを呼び出した後、コンストラクターで初期化することができますInitialiseComponent()

方法は次のとおりです。

List<TextBox>まず、次のようにフォーム クラス a に追加します。

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.
}
于 2013-04-27T08:48:49.750 に答える
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]);
}
于 2013-04-27T09:04:04.437 に答える
0

できません。それらを辞書のリストに保存し、この方法でアクセスする必要があります。そう

  • コントロールをリスト/辞書に追加する
  • forループで、インデックスでアクセスします
于 2013-04-27T08:13:27.677 に答える