此属性通常由窗体上Button控件的DialogResult属性设置 当用户单击 Button 控件时,分配给 Button 的DialogResult 属性的值将分配给该窗体的 DialogResult DialogResult button1.DialogResult = DialogResult.OK; DialogResult // Make button2’s dialog result DialogResult button2.DialogResult = DialogResult.Cancel; DialogResult // Set the caption bar text DialogResult if (form1.DialogResult == DialogResult.OK) DialogResult { DialogResult // Display DialogResult form1.Dispose(); DialogResult } DialogResult else DialogResult { DialogResult
Cancel.DialogResult = DialogResult.Cancel; } } 最终查明原因,原来是WinForm中Button控件的原理没有弄清楚。 在Click方法第一次运行,DialogResult的结果是WinForm的DialogResult结果,运行Form的DialogResult是没有留下任何值;但是在Click方法第二次执行,DialogResult 的结果是Button控件的DialogResult结果。 解决办法:在Click方法中使用this.DialogResult代替Button.DialogResult 代码如下修改后,就不需要点击两次按钮了。 = DialogResult.OK; } private void Cancel_Click(object sender, EventArgs e) { this.DialogResult
的窗体叫frmAddUser,那么代码如下: 1: frmAddUser frm = new frmAddUser(); 2: 3: if (frm.ShowDialog() == DialogResult.OK ) 4: 5: { 6: 7: //todo list 8: 9: } 10: 一般都是设置“增加用户”窗体中“确定”按钮的DialogResult ,而是继续留在这个窗体上,等待用户修改,可是事实却不是这样,因为你设置了“确定”按钮的Dialogue属性,只要用户一点击按钮,主窗体中的 1: if (frm.ShowDialog() == DialogResult.OK 确定”按钮的Diagolue属性,直接把判断邮件是否合格的方法放在”确定”按钮的点击事件中,如果符合,那么就设置窗体的Diagolue属性为OK,用下面的代码: 1: 2: this.DialogResult = DialogResult.OK; 这样主窗体中的if (frm.ShowDialog() == DialogResult.OK)这个判断也为真,它会继续执行下面的代码。
System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace _2014050904DialogResult Name Specified"; public MessageBoxButtons buttons = MessageBoxButtons.YesNo; public DialogResult if (result == DialogResult.Yes) { // Closes the parent form.
在botton里面设置dialogresult为ok的时候,按下按钮窗口会自然关闭,这是由于窗口时模态显示的原因 这种方式多用于设置对话框吧。。。 但是更多时候必须判断对话框里里的输入是否有效或者其他一些判断 所以不推荐奖button的dialogresult属性直接设置为ok 而是动态用代码实现,但条件成立的时候写上 this.DialogResult =DialogResult.ok; 这样可以避免一些异常的捕捉和判断。。。 以上为个人感悟 下面分享一篇关于dialogresult的文章,理解了这些可以更好的运用dialogresult这个东西 http://blog.csdn.net/zhzuo/archive/2006/
WPF里直接用 if (pOpenFileDialog.ShowDialog() == DialogResult.OK) {} 会报: “System.Nullable”不包含“OK” 改为: if (pOpenFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
1、DialogResult经常用在winform开发中的登录,设置参数中,在主窗体中弹出设置参数的窗体,当我们点击设置参数窗体上的确定按钮时,直接返回设置参数窗体的DialogResult的属性即可, 一般设置将属性的值设置为DialogResult.OK,这样怎么实现呢? 只需要将设置参数窗体上的按钮的DialogResult属性设置为DialogResult.OK即可,这样按钮在单击时,就将这个DialogResult.OK传递给父窗体也就是这里的设置参数窗体; 2、 DialogResult.OK,那么我们怎么去实现呢? 我们可以在按钮事件中加入判断,因为设置参数的窗体本身有DialogResult属性,我们就可以直接设置该属性,而不是将按钮的DialogResult属性传递给父窗体。
下面这段代码很好理解, //create a new dialog, and get the value by using dialogResult DialogResult dialogResult MessageBox.Show("是否要创建目录" + textBox1.Text.ToString(), "Tips", MessageBoxButtons.YesNo); if (dialogResult ==DialogResult.Yes) { //do sth } 以前不理解,是因为经常看到的都是下面这样的 if(MessageBox.Show ("删除目录"+textBox1.Text,"Tips",MessageBoxButtons.YesNo)==DialogResult.Yes) {
此时就用到DialogResult这个属性。 下面用一个简单例子说明DialogResult这个属性的使用方法。 = DialogResult.OK End Sub 2、添加form1界面跳转按钮的事件 Private Sub btnJump_Click(sender As Object, e = DialogResult.OK Then btnJump.Text = "跳转成功" End If End Sub 注意,此处打开子窗口需要用 showDialog(),否则即使DialogResult为OK,也无法进入该分支。 这样在执行完JumpForm窗口的关闭事件时,会设置DialogResult属性为OK。在form1界面会进入if分支,刷新按钮名称。
如果此属性的DialogResult不是设置为None,并且父窗体是通过ShowDialog方法显示的,则不必挂钩任何事件,单击按钮也可关闭父窗体。 然后,该窗体的DialogResult属性将设置为该按钮被单击时的DialogResult。 例如,若要创建一个“是/否/取消”对话框,只需添加三个按钮并将其DialogResult属性分别设置为Yes、No和Cancel 即可。
DialogResult 是Form类的一个属性, ShowDialog()是Form类的一个方法也就是函数。 一般对话框上会有:确定,取消两个按钮。 点击确定,会设置 DialogResult =DialogResult.OK ; 点击取消,会设置 DialogResult =DialogResult.Cancel ; 然后在主进程根据 DialogResult
利用DialogResult属性实现主程序的打开当前窗口的关闭 首先介绍一下非模式化窗体show()和模式化窗体showdialog()的概念: 两种方法都能打开显示窗体, 1.非模式化窗体show 按钮,建立click事件 private void button1_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; this.Close(); //关闭当前窗口 } 在主程序program.cs上码入 FrmMain frm=new FrmMain(); if (frm.DialogResult==DialogResult.OK) { Application.Run(new FrmMain()); } 分析: 点击button按钮后,当前模式窗体的dialogresult属性被设置为ok。
显示一般的提示信息 /// /// <param name="message">提示信息</param> public static DialogResult 显示警告信息 /// /// <param name="message">警告信息</param> public static DialogResult 显示错误信息 /// /// <param name="message">错误信息</param> public static DialogResult 并显示错误标志 /// /// <param name="message">错误信息</param> public static DialogResult 值</returns> public static DialogResult ConfirmYesNoCancel(string prompt) {
显示一般的提示信息 /// /// <param name="message">提示信息</param> public static DialogResult 显示警告信息 /// /// <param name="message">警告信息</param> public static DialogResult 显示错误信息 /// /// <param name="message">错误信息</param> public static DialogResult 并显示错误标志 /// /// <param name="message">错误信息</param> public static DialogResult 并显示提示标志 /// /// <param name="message">错误信息</param> public static DialogResult
Login login = new Login(); //界面转换 login.ShowDialog(); if (login.DialogResult == DialogResult.OK) { login.Dispose(); Application.Run(new MainForm()); } else if (login.DialogResult == DialogResult.Cancel) login.Dispose(); return; } 在登陆界面添加如下内容 //跳转主界面 this.DialogResult = DialogResult.OK; this.Dispose(); this.Close();
中定义获取数据的方法 public String getValue(){ return "aaa"; } 然后在调用dialog的主程序中如下调用 Dialog dlg = new Dialog(); DialogResult http://msdn.microsoft.com/zh-cn/library/system.windows.forms.form.close.aspx 这样,主程序就获取了用户在自定义对话框的DialogResult (2)解封装 主窗体定义一个类存放数据,这里仅用一个string代替 然后在dialog如下代码 this.DialogResult = DialogResult.OK; Main mainForm DialogResult dialog_result = dialog.ShowDialog(this);//注意,这里的this是必须的。 第一种方法this参数不是必须 if (dialog_result == DialogResult.OK) { MessageBox.Show(str); }
public CloseForm()
{
InitializeComponent();
this.DialogResult = DialogResult.Cancel;
}
///
需要注意的是Login窗体只有验证通过时返回值才为DialogResult.OK,其余时返回DialogResult.None。 { frmLogin login = new frmLogin(); login.ShowDialog(); if(login.DialogResult.Equals (DialogResult.OK)) { login.Close(); Application.Run(new frmMain ()); } } 登陆窗体,验证成功执行代码 this.DialogResult=DialogResult.OK;
Login login = new Login(); //界面转换 login.ShowDialog(); if (login.DialogResult == DialogResult.OK) { login.Dispose(); Application.Run(new MainForm()); } else if (login.DialogResult == DialogResult.Cancel) return; } } 并在Form1.cs中,验证用户名和密码后面(有注释:待添加代码区),添加代码: //跳转主界面 this.DialogResult = DialogResult.OK; this.Dispose(); this.Close();
= System.Windows.Forms.DialogResult.OK; 4 } 5 6 private void btnCancel_BtnClick( object sender, EventArgs e) 7 { 8 this.DialogResult = System.Windows.Forms.DialogResult.Cancel () 17 { 18 if (blnEnterClose) 19 this.DialogResult = System.Windows.Forms.DialogResult.OK (object sender, EventArgs e) 108 { 109 this.DialogResult = System.Windows.Forms.DialogResult.Cancel () 118 { 119 if (blnEnterClose) 120 this.DialogResult = System.Windows.Forms.DialogResult.OK