在控件C#中获取c.SelectedItem

Sj0*_*3rs 4 c# validation errorprovider

我正在为我的项目制作一些验证功能,但我仍然坚持不懈.我想要一个函数来处理几个不同的控件和错误.
这是我的代码:

private void ValidateControls(Control c)
{
    if (c is TextBox)
    {
        if (c.Text == "")
        {
            epNew.SetError(c, "Something");
        }
    }
    else if (c is ComboBox)
    {
        // What now?
        // if (c.SelectedItem == null) does not work
    }

}
Run Code Online (Sandbox Code Playgroud)

而我这样称呼它:

private void txtNEAN_Validating(object sender, CancelEventArgs e)
{
    ValidateControls(txtNEAN);
}
Run Code Online (Sandbox Code Playgroud)

这适用于文本框.但如果我这样做:

private void cbbEMerk_Validating(object sender, CancelEventArgs e)
{
    ValidateControls(cbbEMerk);
}
Run Code Online (Sandbox Code Playgroud)

if (c.SelectedItem == null)例如不起作用.
我怎样才能做到这一点?这可以使用吗?如果没有,什么是更好的选择?
我很乐意听到任何消息!

Rap*_*aus 6

在这种情况下你必须转换c为aComboBox

else if (c is ComboBox)
     {
         if (((ComboBox)c).SelectedItem == null)
     }
Run Code Online (Sandbox Code Playgroud)

顺便说一下,_Validating如果他们做同样的事情,不要为每个控件创建一个方法.你可以使用一个,或一个txtBox_Validating用于TextBoxes,一个comboBox_Validating用于组合框等.