将焦点转移到组合框时发生了一些奇怪的事情

时间:2013-08-14 08:23:03

标签: c#

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

0 个答案:

没有答案