私のプロジェクトにいくつかの検証関数を作成していますが、何かに取り残されています。 私はいくつかの異なるコントロールとエラーを処理する単一の関数を持っています。
は、ここに私のコードです:コントロールでc.SelectedItemを取得するC#
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
}
}
そして、私はこのようにそれを呼び出しています:
private void txtNEAN_Validating(object sender, CancelEventArgs e)
{
ValidateControls(txtNEAN);
}
これは、テキストボックスのために正常に動作します。しかし、私がしなければ:例えば
private void cbbEMerk_Validating(object sender, CancelEventArgs e)
{
ValidateControls(cbbEMerk);
}
if (c.SelectedItem == null)
は動作しません。
どうすればいいですか?これは大丈夫ですか?そうでない場合、より良い選択肢は何ですか?
私は何かを聞いてみたい!彼らは同じことを行う場合は、ちなみに、この場合のComboBox
else if (c is ComboBox)
{
if (((ComboBox)c).SelectedItem == null)
}
にc
をキャストする必要があり
感謝を見ることができます!できるだけ早くそれに印をつけます。 – Sj03rs
また、https://msdn.microsoft.com/en-us/library/ms950965.aspx(WinFormsで作業しているのかどうかわからないが、とにかく) –
も読んでみてください。また、そのようにキャストする必要はありません'if(((ComboBox)c).SelectedItem == null)'?そうしないと、ComboBoxをメソッドとして使用できないというエラーが表示されます。 – Sj03rs