经常会遇到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;
}
ok
mjj通道