在处理是取消按钮/否/取消消息框中的FormClosing方法
-
12-09-2019 - |
题
我把一个是/否/在的FormClosing 我的表格的方法取消消息框。现在这是消息框中的文本:你想要保存的数据的
我不是一个设备专业,不知道如何处理,如果用户点击取消按钮? 点击取消按钮的形式必须是恰好的结果保持开放。结果如何防止关闭我的形式的FormClosing 方式?
我写到目前为止:;)
DialogResult dr = MessageBoxFarsi.Show("Do You Want to Save Data?","",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning);
//...
else if (dr == DialogResult.Cancel)
{
???
}
请帮我完成我的代码!点击感谢
解决方案
的FormClosing具有布尔参数,如果设置为True时函数返回时,将取消关闭窗体,IIRC。
编辑:例如,
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
// Set e.Cancel to Boolean true to cancel closing the form
}
参见此处。
其他提示
其实我觉得你缺少事件处理程序,哦,你甚至不能没有,甚至处理转向了这一点。你必须像这样的事件处理程序添加的事件。
private void myform_Closing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBoxFarsi.Show("Do You Want to Save Data?","",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning)
if (dr == DialogResult.Cancel)
{
e.Cancel = true;
return;
}
else if (dr == DialogResult.Yes)
{
//TODO: Save
}
}
//now add a default constructor
public myform() // here use your form name.
{
this.FormClosing += new FormClosingEventHandler(myform_Closing);
}
原谅我,如果有这个代码中的一些过错拼写,因为我没有在C#写,复制粘贴在这里。我只是写在这里。 :)
您可以有类似以下内容:
if(dr == DialogResult.Cancel)
{
e.Cancel = true;
}
else if(dr == DialogResult.Yes)
{
//Save the data
}
在上面的代码应该只如果选择Yes或关闭的形式没有了,当你选择Yes,保存数据。
您应该试试这个功能。
public DialogResult msgClose(string msg)
{
return MessageBox.Show(msg, "Close", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
}
和像这样使用。
private void frm_FormClosing(object sender, FormClosingEventArgs e)
{
if (conn.msgClose("Application close?") == DialogResult.No)
e.Cancel = true;
else
{
this.Close();
}
}
您可以试试这个:
if (MessageBox.Show("Are you sure you want to quit?", "Attention!!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning) == DialogResult.Yes)
{
//this block will be executed only when Yes is selected
MessageBox.Show("Data Deleted", "Done", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
//this block will be executed when No/Cancel is selected
//the effect of selecting No/Cancel is same in MessageBox (particularly in this event)
}
如果需要同样可以使用No
类的Cancel
和DialogResult
按钮点击做
不隶属于 StackOverflow