private void _comboClearingCode_Validating(object sender, CancelEventArgs e)
{
string clearingCodeText = _comboClearingCode.Text;
//MessageBox.Show(clearingCodeText);
int count = 0;
foreach (string item in _comboClearingCode.Items)
{
if (clearingCodeText == item)
break;
count++;
}
if (count == _comboClearingCode.Items.Count)
{
MessageBox.Show("please input a valid client code");
_comboClearingCode.Focus();
}
}
此事件非常简单,当用户输入错误的文本时,输出错误消息并返回到先前的控件(在这种情况下控件是组合框)。但是,它没有按预期工作,事实上,它输出错误消息两次,此外,每当我单击该框时,它再次输出两次。它真的让我很生气。当我调试程序时,我发现当Focus()调用时,它只是立即跳转到验证事件,这就是错误消息输出两次的原因。问题是为什么它只输出两次而不是循环?