当前位置:编程学习 > C#/ASP.NET >>

winform 中ShowDialog()的问题!

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

我的意思 按了确定之后 form2 还在。不可以给它消失。用户还没有填好数据,好像不管怎样form2都会关闭,return也不行啊。 --------------------编程问答-------------------- messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道·· --------------------编程问答--------------------
引用 1 楼 yuekunge 的回复:
messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··


因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。 --------------------编程问答--------------------
引用 楼主 u011315000 的回复:
我在主窗体的一个按钮事件 
form2 f=new form2(); 
If(f.showdialog()==dialogresult.ok)
{
   //进行一些操作
}
我在 form2里面 需要做数据验证 用到 messagbox.show("格式不正确!"); 按了确定之后 form2 关闭了。

我的意思 按了确定之后 form2 还在。不可以给它消失。用户还没有填好数据,好像不管怎样form2都会关闭,return也不行啊。


唉,刚发完帖子就找到原因了,原来是因为按钮的DialogResult的属性设置为OK了,所以不管怎样只要按钮触发窗体都会关闭。 --------------------编程问答--------------------
引用 2 楼 yuekunge 的回复:
Quote: 引用 1 楼 yuekunge 的回复:

messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··


因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。

这跟form2的返回值一点关系没有 --------------------编程问答-------------------- 与form2的返回值无关 与按钮的返回值有关 --------------------编程问答--------------------
引用 4 楼 mh_ma 的回复:
Quote: 引用 2 楼 yuekunge 的回复:

Quote: 引用 1 楼 yuekunge 的回复:

messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··


因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。

这跟form2的返回值一点关系没有

我说的是 Form2的返回值嘛?我说的点击 mesbox的返回值··· --------------------编程问答-------------------- 点击MessageBox中的“确定”按钮  MessageBox.Show()会返回  form2不会关闭  除非你等MessageBox.Show返回之后  设置了 form2的 DIalogResult 等于 非DialogResult.None 的其他值  如

form2中
btn1_Click()
{
   //...
   MessageBox.Show("格式不正确!");
   DialogResult = DialogResult.Cancel;  //之后form2关闭(实质是隐藏并没有close)
} --------------------编程问答-------------------- 关闭[实质是隐藏]任何一个模式对话框  只需要 设置它的DialogResult属性为非DialogResult.None值  就行
这样一来  该模式对话框 暂时隐藏  你可以再次使用它

在一般编程中  如果只需要使用一次  一般配合using

using(Form f = new Form())
{
   f.ShowDialog();
}  //f使用完之后 就dispose掉  节省系统资源

//建议不要使用close方法 去关闭一个  ShowDialog()出来的模式对话框 --------------------编程问答--------------------
引用 6 楼 yuekunge 的回复:
Quote: 引用 4 楼 mh_ma 的回复:

Quote: 引用 2 楼 yuekunge 的回复:

Quote: 引用 1 楼 yuekunge 的回复:

messagbox.show("格式不正确!"); 按了确定之后 让返回是一个dialogresult.ok哦··你要知道··


因为 你点击messagbox.show("格式不正确!")的确定之后,她返回的是一个 DialogResult.OK。

这跟form2的返回值一点关系没有

我说的是 Form2的返回值嘛?我说的点击 mesbox的返回值···

mesbox的返回值跟form2窗体关闭有什么关系? --------------------编程问答-------------------- ……长知识了……………… --------------------编程问答-------------------- 其实,我比较好奇,楼主想是想什么功能? --------------------编程问答-------------------- 我也刚遇到你这个问题,

把你的按钮 的 dialogresult 去掉  变成none
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,