日期:2014-05-18 浏览次数:21071 次
如果将button的DialogResult设为OK,验证失败后,它会直接关闭窗口,这时,我们要求在验证失败后重新输入,而不是关闭窗口,请问怎么做?
主窗口:
  #region
            //if (RValue == "")
            //{
            //    MessageBox.Show(this, "请选择需要修改的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //    return;
            //}
            Login.FLAGID = "10";
            NewClientAdd editor = new NewClientAdd();
            editor.ShowDialog();
            if (editor.DialogResult == DialogResult.OK)
            {
                DataGridViewBind2();
            }
            #endregion
子窗口:
      
Button的DialogResult.OK
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestDialog
{
    class Program
    {
        static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
    }
    class MainForm : Form
    {
        Button cmdTest;
        public MainForm()
        {
            this.SetBounds(0, 0, 300, 400);
            this.StartPosition = FormStartPosition.CenterScreen;
            this.Text = "Main Form";
            cmdTest = new Button();
            cmdTest.SetBounds(100, 180, 100, 40);
            cmdTest.Text = "Test";
            cmdTest.Click += (o, e) =>
            {
                TestForm frm = new TestForm();
                frm.ShowDialog();
                MessageBox.Show("DialogResult: " + frm.DialogResult);
            };
            this.Controls.Add(cmdTest);
        }
    }
    class TestForm : Form
    {
        Button cmdTest;
        TextBox txtTest;
        public TestForm()
        {
            this.SetBounds(0, 0, 200, 200);
            this.StartPosition = FormStartPosition.CenterParent;
            this.Text = "Test Form";
            txtTest = new TextBox();
            txtTest.SetBounds(50, 50, 100, 30);
            cmdTest = new Button();
            cmdTest.SetBounds(70, 100, 60, 40);
            cmdTest.Text = "Test";
            cmdTest.Click += (o, e) =>
            {
                if (txtTest.Text == "123") this.DialogResult = System.Windows.Forms.DialogResult.OK;
            };
            this.Controls.Add(cmdTest);
            this.Controls.Add(txtTest);
        }
    }
}