我在groupBox中有10个comboBox 因为我只想在相应的comboBox中显示一个计算值,如果我设置了一个变量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;
}
}
答案 0 :(得分:3)
您的组合框顺序在集合中有所不同,因此它会随机插入数字。也许你可以命名你的组合框例如cmb1,cmb2,cmb3等,如果你更新你的代码,它将运行。
答案 1 :(得分:0)
Controls
集合中的控件未按其在表单上的外观排序。如果根据位置需要不同的值,则需要找到一种对它们进行排序的方法。
答案 2 :(得分: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框。