我尝试使用以下代码评估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
有谁能告诉我我做错了什么?
答案 0 :(得分:3)
更改
foreach (ucBstelle b in ucAufnahme1.Controls)
到
foreach (ucBstelle b in ucAufnahme1.Controls.OfType<ucBstellen>())
foreach
尝试从Controls
集合中投射comboBox时出现错误