两个窗体之间的问题

Delta 2008-11-05 08:28:44
Form1上有一个Button,事件如下:
     private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
DialogResult re= f.ShowDialog();
MessageBox.Show(re.ToString());
}

Form2上有一个Button1(确定),一个取消按钮,还有一个文本框

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的窗体中“确定”按钮的事件中,最后一行再加上一行代码:
this.Close()

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

这个代码放到:
 button1.DialogResult = DialogResult.OK;
之前,返回的结果值也是Cancel。
请问这是为什么?
希望能给我帮助。
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delta 2008-11-05
  • 打赏
  • 举报
回复
再说一句,朋友,this.Close()后面的语句也执行。我单步执行过。
Delta 2008-11-05
  • 打赏
  • 举报
回复
感谢,我的问题已经解决。!!!!!!
Fibona 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengmo_2000 的回复:]
第一个问题
button1.DialogResult = DialogResult.OK;
这句不对,这句的意思是让button1具有OK健的性质(也就是点击关闭),所以你第二次点才会关闭
应该改成this.DialogResult = DialogResult.OK;
第二个问题很明显,
this.close后面的代码都不会执行的
[/Quote]

引用回复
米菲爸爸 2008-11-05
  • 打赏
  • 举报
回复
第一个问题
button1.DialogResult = DialogResult.OK;
这句不对,这句的意思是让button1具有OK健的性质(也就是点击关闭),所以你第二次点才会关闭
应该改成this.DialogResult = DialogResult.OK;
第二个问题很明显,
this.close后面的代码都不会执行的

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧