为Groupbox中的每个ComboBox创建一个Label

时间:2017-08-01 20:10:59

标签: c# combobox

我正在尝试为表单上每个Groupbox中包含的每个Combobox创建一个标签。但是,以下代码仅在组合框中只有一个组合框时才有效。相同的代码适用于Textboxes - 将为每个文本框创建一个标签。它对组合框起作用并不起作用。我做错了什么?

    foreach (GroupBox g in gbList)
        {
            foreach (ComboBox t in g.Controls.OfType<ComboBox>())
            {
                var borderColor = ChangeColorBrightness(EntryPoint.bgBack, Convert.ToSingle(-0.50));                    
                var n = t.Name;
                int x = t.Location.X;
                int y = t.Location.Y;
                int w = t.Size.Width;
                int h = t.Size.Height;
                Label label = new Label();
                label.BackColor = borderColor;
                label.ForeColor = SystemColors.WindowText;
                label.BorderStyle = BorderStyle.None;
                label.Name = n + "Overlay";
                label.AutoSize = false;
                label.Width = w;
                label.Height = h;
                label.Location = new Point(x, y);
                g.Controls.Add(label);
                label.SendToBack();                    
            }
        }

1 个答案:

答案 0 :(得分:0)

英语中的“不起作用”位可能是“集合被修改,枚举操作可能无法执行”。异常?

您无法修改正在进行的收藏。在这里,你在g.Controls上添加一个标签,同时迭代它。

相关问题