C#foreach UserControl

时间:2015-02-19 11:41:50

标签: c# winforms foreach combobox user-controls

我尝试使用以下代码评估C#中的公式:

foreach (ucBstelle b in ucAufnahme1.Controls)
{
    foreach(Control c in b.Controls)
    {
        TextBox txt = c as TextBox;

        if (txt != null)
        {
            if (txt.Text == "")
               txt.Text = "0";

            Match match = Regex.Match(txt.Text, "[0-9]");

            if (!match.Success)
            {
                MessageBox.Show("Please use only numbers");
                return;
            }
        }
    }
}
  • ucBstellen是一个带有组合框和4个文本框的用户控件。
  • ucAufnahmen是另一个用户控件,包含3 ucBstellen和其他一些控件(4个组合框,2个文本框和一个按钮)

当我尝试调试代码时,会抛出一个InvalidCastException,上面写着:

  

ComboBox无法转换为ucBstelle

有谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:3)

更改

foreach (ucBstelle b in ucAufnahme1.Controls)

foreach (ucBstelle b in ucAufnahme1.Controls.OfType<ucBstellen>())

foreach尝试从Controls集合中投射comboBox时出现错误