DialogResult dr = new DialogResult (); Form2 frm2 = new Form2(); dr = frm2.ShowDialog(); if ( dr == DialogResult.OK ) MessageBox.Show ("User clicked OK button"); else if ( dr == DialogResult.Cancel) MessageBox.Show ("User clicked Cancel button");“确定”按钮的DialogResult属性就是frm2.ShowDialog();的返回值? “取消”按钮的DialogResult属性就是frm2.ShowDialog();的返回值? 这是啥逻辑啊??
DialogResult dr = new DialogResult (); Form2 frm2 = new Form2(); dr = frm2.ShowDialog(); //打开一个模式对话框//后面的代码只有模式对话框关闭后才开始执行 //当模式对话框关闭才返回 drif ( dr == DialogResult.OK ) //DialogResult.OK 可以看成一个不变的int 值 //dr 也可以看成一个 int 值 //判断两个 int 是否相等要理解模式对话框、 emum 类型
DialogResult dr = new DialogResult(); Form2 frm2 = new Form2(); dr = frm2.ShowDialog(); if (frm2.Text.Length != 0) { if (dr == DialogResult.OK) MessageBox.Show("User clicked OK button"); else if (dr == DialogResult.Cancel) MessageBox.Show("User clicked Cancel button"); } else MessageBox.Show("输入错误");我没有在form2的文本框中输入,为什么没有弹出"输入错误"的窗口呢?
form.Show() form显示后,可以使用其他页面
DialogResult 是布尔类型OpenFileDialog dia=new OpenFileDialog ();
..
if(dia.ShowDialog()==DialogResult.OK)
{
...
}
DialogResult 是布尔类型 -->返回的是一个枚举类型,可以根据不同的枚举类型制定不同的操作或提示
具体可以看MSDN
使用实例
子窗口.ShowDialog() 这时只能访问子窗口(窗口的焦点会被强制在子窗口上面,主窗口会被遮住并锁定,上面所有的输入框和按钮之类都将“点不动”,直到子窗口返回一个DialogResult或者关闭
Form2 frm2 = new Form2();
dr = frm2.ShowDialog();
if ( dr == DialogResult.OK )
MessageBox.Show ("User clicked OK button");
else if ( dr == DialogResult.Cancel)
MessageBox.Show ("User clicked Cancel button");“确定”按钮的DialogResult属性就是frm2.ShowDialog();的返回值?
“取消”按钮的DialogResult属性就是frm2.ShowDialog();的返回值?
这是啥逻辑啊??
哎,学了1个月winform了,还是天马行空..学语法从没有这么困难过..
顺便问一下,如果没有“确定”、“取消”按钮,form2会有返回值吗
Form2 frm2 = new Form2();
dr = frm2.ShowDialog(); //打开一个模式对话框//后面的代码只有模式对话框关闭后才开始执行
//当模式对话框关闭才返回 drif ( dr == DialogResult.OK )
//DialogResult.OK 可以看成一个不变的int 值
//dr 也可以看成一个 int 值
//判断两个 int 是否相等要理解模式对话框、 emum 类型
在Form2窗口上,有“确定”、“取消”两个按钮,当点击任何一个的时候,就返回了吧,这个时候并没有关闭form2啊,请解释一下,谢谢.....
至于为什么你点了设置DialogResult属性的按钮窗口就关闭了,LZ不要想得太复杂,更不要钻牛角尖,看不懂不是借口
在InitialComponent()组件初始化过程中,应该会有
this.DialogResult = button2.DialogResult;
而InitialComponent()是在Form的构造函数中,也就是说this代表的是Form的当前实例(如果你show()出来N个同样的窗口,每个按钮返回的结果都是互不影响的,因为都是赋给了各自的Form)从微软设计这个属性的名字“会话结果”,就可以看出来,只要点了它,就会(向父级控件,包括Form)返回一个结果,用来传递反馈(父窗口ShowDialog(),不就是要这个反馈吗,现在既然拿到了,自然子窗口也就可以关闭了。于是这个“关闭”的动作,被编译器也可以说是被Fomr.Net的设计者替我们自动完成了)书面的你可以看MSDN Button.DialogResult 属性例子http://www.cnblogs.com/etindex/archive/2009/04/09/1432645.html
Form2 frm2 = new Form2();
dr = frm2.ShowDialog();
if (frm2.Text.Length != 0)
{
if (dr == DialogResult.OK)
MessageBox.Show("User clicked OK button");
else if (dr == DialogResult.Cancel)
MessageBox.Show("User clicked Cancel button");
}
else
MessageBox.Show("输入错误");我没有在form2的文本框中输入,为什么没有弹出"输入错误"的窗口呢?