0

我在 groupBox 中有 10 个组合框,因为我只想在相应的组合框中显示一个计算值,就像这样说如果我设置了一个变量 double i=08.00; 然后在按钮上单击 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

3

您的组合框顺序在集合中不同,因此它随机插入数字。可能您可以命名您的组合框,例如 cmb1、cmb2、cmb3 等,如果您更新代码,它将运行。

于 2013-05-24T08:16:20.980 回答
0

集合中的控件Controls不按它们在窗体上的外观排序。如果您需要根据它们的位置在每个值中使用不同的值,则需要找到一种对它们进行排序的方法。

于 2013-05-24T08:17:37.943 回答
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 回答