声明一个变量 记录验证错误  在下一次enter的时候判断

解决方案 »

  1.   

    感谢您的回复。记录错误这个我也用过,问题依旧。目前的问题是,在弹出提示消息后,按下回车,会关闭掉消息框,但同时也会再次触发验证。就好像是一个回车键同时作用于消息框上,但又传递到了wpf窗体上了。所以,就算记录了错误信息也无法判断这次的回车是来自于用户有意为之还是只是想确认消息框的信息。有没有什么办法阻止messagebox的回车传递呢?
      

  2.   

    messagebox的回车传递  它回车之后返回的是枚举,这你应该知道的。
    当你点 确定 textbox有获取一次焦点,不过有个最笨的方法,让其它控件Focus。
      

  3.   

    这样来试试吧:
    private MessageBoxResult mbResult = MessageBoxResult.None;        private void textBoxTest_KeyUp(object sender, KeyEventArgs e)
            {
                if (mbResult != MessageBoxResult.None)
                {
                    mbResult = MessageBoxResult.None;
                    return;
                }            if (e.Key == Key.Enter)
                {
                    if (textBoxTest.Text == "")
                    {                   
                        mbResult = MessageBox.Show("请输入内容");   
                    }
                    else
                    {                }
                }
            }
      

  4.   

    采用KeyDown事件private void input_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.Key == Key.Enter)
                {
                    if (content.Text == "")
                    {
                        MessageBox.Show("请输入内容");
                        return;
                    }else{
                      .......
                    }
                }
            }
      

  5.   

    MicrosoftCenterOfHN 的方法我试过,不行。换成keydown后就可以了。请问下,为什么keyup不行,keydown就可以了呢?