0

groupBoxに10個のcomboBoxがあります。これは、可変のdouble i = 08.00;を設定した場合、このようにそれぞれのcomboBoxに計算された値を表示したいだけです。次にボタンをクリックすると、cmboBoxは次のような値を表示するはずです

CB1-08.00
CB2-09.50
CB3-10.00
CB4-10.50
CB5-11.00
CB6-11.50

....などなどCB10までしかし、私はこのような出力を得ています ここに画像の説明を入力

そしてコード

private void button1_Click(object sender, EventArgs e)
    {
        double i=08.00;
        foreach (var comboBox in groupBox1.Controls.OfType<ComboBox>())
        {
            comboBox.Text = i.ToString("00.00");
            i = i + 0.5;
        }
    }
4

3 に答える 3

0

Foreach ループは、必要な順序でコレクションを提供しません。前進する方法は、各コンボ ボックスにタグ ID を与えることであり、それを使用してそれらに値を割り当てることができます。

したがって、最初のコンボ ボックスはタグ ID 0 で始まり、最後のコンボ ボックスは 8 になります。

        double val = 08.00;
        for (int i = 0; i < groupBox1.Controls.Count; ++i)
        {
            var combobox = groupBox1.Controls[i] as ComboBox;
            int tag = int.Parse(combobox.Tag.ToString());
            double value = val + (0.5 * tag);
            combobox.Text = value.ToString("00.00");
        }

必要な順序で cobbo ボックスにタグを付けていることを確認してください。

于 2013-05-24T08:58:23.837 に答える