获取Form.ShowDialog() 出的窗体中textbox的返回值

经常会遇到ShowDialog出的窗体中有一些textbox,输入完后返回到主窗体中。怎么办呢?有办法。

 

理论上讲ShowDialog后的窗体返回值类型是DialogResult。也就是一个枚举值,只有yes,no,ok之类的值,肯定是不能把textbox中的值返回的。有人说重写DialogResult。可以,但是估计没几个人会的。

 

举个简单的例子就可以实现。

两个窗体from1,form2

 

from1中ShowDialog出form2

 

form2中有个textbox1,有个button1

在form2中定义一个public属性,名字为test

 

点击button1,将属性test设置为textbox1的值,设置this.DialogResult的值为OK(当然也可以是其他的,但是建议不是cancel,WHY?自己去想。)

 

在form1的shoudialog后面写判断返回值是不是OK,如果是输出form2的属性test  效果达到。

下面是代码。

 

//FROM1

private void button1_Click(object sender, EventArgs e)
        {
           form2     myform2 = new form2();

       DialogResult ddr = myform2 .ShowDialog();
            if(ddr == DialogResult.OK)
            {
                MessageBox.Show(myform2 .test);
            }
        }

 

 

//FORM2

//我没定义属性,写了个变量,自己看情况

 public string test= string.Empty;

 

 private void button1_Click(object sender, EventArgs e)
        {
            test= this.textBox1.Text.Trim();
            this.DialogResult = DialogResult.OK;
        }

 

你可能感兴趣的:(C#)