winform 中ShowDialog()的问题!

yangchen_0710 2013-08-09 10:10:18
我在主窗体的一个按钮事件
form2 f=new form2();
If(f.showdialog()==dialogresult.ok)
{
//进行一些操作
}
我在 form2里面 需要做数据验证 用到 messagbox.show("格式不正确!"); 按了确定之后 form2 关闭了。

我的意思 按了确定之后 form2 还在。不可以给它消失。用户还没有填好数据,好像不管怎样form2都会关闭,return也不行啊。
...全文
490 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gy348 2013-08-11
  • 打赏
  • 举报
回复
我也刚遇到你这个问题, 把你的按钮 的 dialogresult 去掉 变成none
qeome 2013-08-09
  • 打赏
  • 举报
回复
……长知识了………………
王子文龙 2013-08-09
  • 打赏
  • 举报
回复
引用 6 楼 yuekunge 的回复:
[quote=引用 4 楼 mh_ma 的回复:] [quote=引用 2 楼 yuekunge 的回复:] [quote=引用 1 楼 yuekunge 的回复:] messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··
因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。[/quote] 这跟form2的返回值一点关系没有[/quote] 我说的是 Form2的返回值嘛?我说的点击 mesbox的返回值···[/quote] mesbox的返回值跟form2窗体关闭有什么关系?
请叫我卷福 2013-08-09
  • 打赏
  • 举报
回复
关闭[实质是隐藏]任何一个模式对话框 只需要 设置它的DialogResult属性为非DialogResult.None值 就行 这样一来 该模式对话框 暂时隐藏 你可以再次使用它 在一般编程中 如果只需要使用一次 一般配合using using(Form f = new Form()) { f.ShowDialog(); } //f使用完之后 就dispose掉 节省系统资源 //建议不要使用close方法 去关闭一个 ShowDialog()出来的模式对话框
请叫我卷福 2013-08-09
  • 打赏
  • 举报
回复
点击MessageBox中的“确定”按钮 MessageBox.Show()会返回 form2不会关闭 除非你等MessageBox.Show返回之后 设置了 form2的 DIalogResult 等于 非DialogResult.None 的其他值 如 form2中 btn1_Click() { //... MessageBox.Show("格式不正确!"); DialogResult = DialogResult.Cancel; //之后form2关闭(实质是隐藏并没有close) }
敌敌畏耶 2013-08-09
  • 打赏
  • 举报
回复
引用 4 楼 mh_ma 的回复:
[quote=引用 2 楼 yuekunge 的回复:] [quote=引用 1 楼 yuekunge 的回复:] messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··
因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。[/quote] 这跟form2的返回值一点关系没有[/quote] 我说的是 Form2的返回值嘛?我说的点击 mesbox的返回值···
水目 2013-08-09
  • 打赏
  • 举报
回复
与form2的返回值无关 与按钮的返回值有关
王子文龙 2013-08-09
  • 打赏
  • 举报
回复
引用 2 楼 yuekunge 的回复:
[quote=引用 1 楼 yuekunge 的回复:] messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··
因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。[/quote] 这跟form2的返回值一点关系没有
yangchen_0710 2013-08-09
  • 打赏
  • 举报
回复
引用 楼主 u011315000 的回复:
我在主窗体的一个按钮事件 form2 f=new form2(); If(f.showdialog()==dialogresult.ok) { //进行一些操作 } 我在 form2里面 需要做数据验证 用到 messagbox.show("格式不正确!"); 按了确定之后 form2 关闭了。 我的意思 按了确定之后 form2 还在。不可以给它消失。用户还没有填好数据,好像不管怎样form2都会关闭,return也不行啊。
唉,刚发完帖子就找到原因了,原来是因为按钮的DialogResult的属性设置为OK了,所以不管怎样只要按钮触发窗体都会关闭。
敌敌畏耶 2013-08-09
  • 打赏
  • 举报
回复
引用 1 楼 yuekunge 的回复:
messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··
因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。
敌敌畏耶 2013-08-09
  • 打赏
  • 举报
回复
messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··
beibeisay88 2013-08-09
  • 打赏
  • 举报
回复
其实,我比较好奇,楼主想是想什么功能?

110,536

社区成员

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

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

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