我把一个是/否/在的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类的CancelDialogResult按钮点击做

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top