0
  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()调用时,它只是立即跳转到验证事件,这就是错误信息输出两次的原因。问题是为什么它只输出两次而不是循环?

4

0 回答 0