none
模式窗口中的messagebox.show的问题 RRS feed

  • 问题

  • 创建了一个模式窗口A,里面的按钮B的dialogresult=ok。现在按下B有事件判断激活了个MessageBox.Show("请输入编号!", "错误");
    我希望返回模式窗口A,而现在按确定messagebox和窗口A同时关闭了,望大家帮助,谢谢~

    2009年12月17日 11:58

答案

  • 你好!
         我估计是你的MessageBox.Show("请输入编号!", "错误");执行完毕,B按钮的Click事件也执行完了,这样就相当于点击“OK”按钮的动作已经完毕,这样窗体A也就关闭了!
         我认为这个设计的不是很合理啊!一般使用Validating等事件来实现:
    private void textBox1_Validating(object sender, 
                     System.ComponentModel.CancelEventArgs e)
    {
       string errorMsg;
       if(!ValidEmailAddress(textBox1.Text, out errorMsg))
       {
          // Cancel the event and select the text to be corrected by the user.
          e.Cancel = true;
          textBox1.Select(0, textBox1.Text.Length);
    
          // Set the ErrorProvider error with the text to display. 
          this.errorProvider1.SetError(textBox1, errorMsg);
       }
    }
    



    周雪峰
    • 已标记为答案 Abbey.G 2009年12月18日 4:07
    2009年12月17日 15:59
    版主
  • 很正常,窗口A是模式窗口,你在按钮B里面执行了dialogresult=ok,点击时自然关闭了
    努力+方法=成功
    • 已标记为答案 Abbey.G 2009年12月18日 4:07
    2009年12月18日 1:17
  • 是不是设置了A的AcceptButton 或者 CancelButton为B


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 Abbey.G 2009年12月18日 4:07
    2009年12月18日 1:46
    版主

全部回复

  • 你好!
         我估计是你的MessageBox.Show("请输入编号!", "错误");执行完毕,B按钮的Click事件也执行完了,这样就相当于点击“OK”按钮的动作已经完毕,这样窗体A也就关闭了!
         我认为这个设计的不是很合理啊!一般使用Validating等事件来实现:
    private void textBox1_Validating(object sender, 
                     System.ComponentModel.CancelEventArgs e)
    {
       string errorMsg;
       if(!ValidEmailAddress(textBox1.Text, out errorMsg))
       {
          // Cancel the event and select the text to be corrected by the user.
          e.Cancel = true;
          textBox1.Select(0, textBox1.Text.Length);
    
          // Set the ErrorProvider error with the text to display. 
          this.errorProvider1.SetError(textBox1, errorMsg);
       }
    }
    



    周雪峰
    • 已标记为答案 Abbey.G 2009年12月18日 4:07
    2009年12月17日 15:59
    版主
  • 很正常,窗口A是模式窗口,你在按钮B里面执行了dialogresult=ok,点击时自然关闭了
    努力+方法=成功
    • 已标记为答案 Abbey.G 2009年12月18日 4:07
    2009年12月18日 1:17
  • 是不是设置了A的AcceptButton 或者 CancelButton为B


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 Abbey.G 2009年12月18日 4:07
    2009年12月18日 1:46
    版主