C#关于windows form的dialogresult的问题

木子十甫寸 2012-03-26 12:05:40
我自己写了一个form,OK按钮设置为返回dialogresult.ok,但是不想点这个按钮之后关闭窗口,想还是通过在form对应的代码中用this.close()关闭窗口,请问这个应该怎么设置呢?
...全文
374 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2012-03-26
  • 打赏
  • 举报
回复
在Form1_FormClosing事件里写如下代码

if (MessageBox.Show("您确认要退出吗?", "退出系统", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
this.Dispose();
// Application.Exit();
}
else
e.Cancel = true;

如果要button控制,直接在button事件里写this.Close()
木子十甫寸 2012-03-26
  • 打赏
  • 举报
回复
我是在form里面有一些textbox,在点击OK按钮的时候需要判断textbox的数据是否符合条件,不符合的话会弹出messagebox,提示重新输入,确认messagebox之后原来的form保持原状,只有在textbox的数据都符合条件时候form才关闭。

[Quote=引用 1 楼 ghypnus 的回复:]

把这个if(xxx.dialogresult.ok)
{
xxxxx;
}
else
{
e.cancel = true;
}
放到form_closing下

然后按钮事件
this.close(); 窗体关闭之前会调用form_closing 也就会出现提示框了.
[/Quote]
  • 打赏
  • 举报
回复
把这个if(xxx.dialogresult.ok)
{
xxxxx;
}
else
{
e.cancel = true;
}
放到form_closing下

然后按钮事件
this.close(); 窗体关闭之前会调用form_closing 也就会出现提示框了.
youzelin 2012-03-26
  • 打赏
  • 举报
回复
sorry,测试代码写错了
木子十甫寸 2012-03-26
  • 打赏
  • 举报
回复
什么意思?

[Quote=引用 7 楼 youzelin 的回复:]

楼主,你其它什么都不用做,你只需要做的一件事就是确保 Form 的 AcceptButton 不等于你那个按钮
[/Quote]
youzelin 2012-03-26
  • 打赏
  • 举报
回复
楼主,你其它什么都不用做,你只需要做的一件事就是确保 Form 的 AcceptButton 不等于你那个按钮
木子十甫寸 2012-03-26
  • 打赏
  • 举报
回复
嗯嗯,我明白你的意思,但是我怎么在form1的form_closing消息响应里面判断是摁下OK引发的退出还是cancel引发的退出呢?

[Quote=引用 4 楼 ghypnus 的回复:]

引用楼主 qq297095637 的回复:
我自己写了一个form,OK按钮设置为返回dialogresult.ok,但是不想点这个按钮之后关闭窗口,想还是通过在form对应的代码中用this.close()关闭窗口,请问这个应该怎么设置呢?

你写一个方法返回bool类型来判断TextBox
例如:
private Boolean AllCheckedOk()
{
if(te……
[/Quote]
  • 打赏
  • 举报
回复
你写一个方法CheckAll 判断TextBox是否通过验证 返回Boolean类型
然后:(提供思路,代码随意写的)
if(dialog.result == ok && CheckAll() == true)
{
xxxxx.
}
else
{
e.cancel = true;
}
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq297095637 的回复:]
我自己写了一个form,OK按钮设置为返回dialogresult.ok,但是不想点这个按钮之后关闭窗口,想还是通过在form对应的代码中用this.close()关闭窗口,请问这个应该怎么设置呢?
[/Quote]
你写一个方法返回bool类型来判断TextBox
例如:
private Boolean AllCheckedOk()
{
if(textbox1.text == "1" and textbox2.text == "2")
{
return true;
}
else
{
return false;
}
}

然后你 if(CheckAllOk() == true && dialog.result == ok)
{
xxxxxxx
}

110,536

社区成员

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

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

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