Combobox 将值赋给';组合框';在';分组框';用于c中的每个循环#

Combobox 将值赋给';组合框';在';分组框';用于c中的每个循环#,combobox,foreach,c#-3.0,Combobox,Foreach,C# 3.0,我有10个组合框在一个组合框中 因为我只想在相应的组合框中显示一个计算值,比如说,如果我设置了一个可变双精度I=08.00;然后单击按钮,CMBOX应显示如下值 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

我有10个组合框在一个组合框中 因为我只想在相应的组合框中显示一个计算值,比如说,如果我设置了一个可变双精度I=08.00;然后单击按钮,CMBOX应显示如下值

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;
        }
    }
private void按钮1\u单击(对象发送者,事件参数e)
{
双i=08.00;
foreach(groupBox1.Controls.OfType()中的var组合框)
{
comboBox.Text=i.ToString(“00.00”);
i=i+0.5;
}
}

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

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

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

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

Foreach循环不会按照您想要的顺序提供集合。前进的方法是为每个组合框指定一个标记id,然后您可以使用该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");
        }
double val=08.00;
对于(int i=0;i

确保按所需顺序标记cobbo box。

Foreach循环不会按所需顺序提供集合。前进的方法是为每个组合框指定一个标记id,然后您可以使用该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");
        }
double val=08.00;
对于(int i=0;i

确保按照所需的顺序标记cobbo框。

在调试器中逐步执行……从控件集合中获取控件的顺序或多或少是随机的。添加一个.orderby(x=>x.Name)以使它们在按您所说的命名时按排序。@Ralf我认为您所说的是错误输出的原因,您能告诉我您在suggestionforeach(groupBox1.Controls.OfType()中的var comboBox.orderby(x=>x.Name))中提到的代码段在哪里使用吗@Ralf Beauty感谢您提供了这段小代码,但在调试器中有很大的用处。从控件集合中获取控件的顺序或多或少是随机的。添加一个.orderby(x=>x.Name)以使它们在按您所说的命名时按排序。@Ralf我认为您所说的是错误输出的原因,您能告诉我您在suggestionforeach(groupBox1.Controls.OfType()中的var comboBox.orderby(x=>x.Name))中提到的代码段在哪里使用吗@Ralf Beauty感谢您提供了这个小代码,但有很大的用处