首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

两个窗体之间的有关问题

2012-03-07 
两个窗体之间的问题Form1上有一个Button,事件如下:C# codeprivate void button1_Click(object sender, Eve

两个窗体之间的问题
Form1上有一个Button,事件如下:
 

C# code
     private void button1_Click(object sender, EventArgs e)        {            Form2 f = new Form2();           DialogResult re= f.ShowDialog();            MessageBox.Show(re.ToString());        }

Form2上有一个Button1(确定),一个取消按钮,还有一个文本框
C# code
private void button1_Click(object sender, EventArgs e)        {            if (textBox1.Text == "")            {                MessageBox.Show("不能为空!");                return;            }            button1.DialogResult = DialogResult.OK;        }        private void button2_Click(object sender, EventArgs e)        {            this.Close();        }

在Form2中,文本框中输入内容,为什么点两次“确定”按钮才退出Form2?
看看以上代码有什么问题?


再问个问题:
如果在Form2的窗体中“确定”按钮的事件中,最后一行再加上一行代码:
C# code
this.Close()

为什么 Button的返回值却成了Cancel?
如果把
C# code
this.Close()

这个代码放到: 
C# code
 button1.DialogResult = DialogResult.OK;
之前,返回的结果值也是Cancel。
请问这是为什么?
希望能给我帮助。

[解决办法]
第一个问题
button1.DialogResult = DialogResult.OK;
这句不对,这句的意思是让button1具有OK健的性质(也就是点击关闭),所以你第二次点才会关闭
应该改成this.DialogResult = DialogResult.OK;
第二个问题很明显,
this.close后面的代码都不会执行的
[解决办法]
探讨
第一个问题
button1.DialogResult = DialogResult.OK;
这句不对,这句的意思是让button1具有OK健的性质(也就是点击关闭),所以你第二次点才会关闭
应该改成this.DialogResult = DialogResult.OK;
第二个问题很明显,
this.close后面的代码都不会执行的

热点排行