关闭表格C#时点击“是”加倍?

时间:2015-07-29 06:30:08

标签: c#

我为事件关闭形式C#编写代码。它有效,但当我点击“是”关闭表格时,我必须点击两次。 怎么了?我该如何解决这个问题呢? 这是我的代码

WebView myWebView = (WebView) findViewById(R.id.mainWebView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.getmdl.io/templates/android-dot-com/index.html");

4 个答案:

答案 0 :(得分:4)

如果您单击是,则现在您的逻辑将运行e.Cancel = true,因为它取消了结束。

另外,正如评论中所提到的,Application.Exit()不是必需的。

答案 1 :(得分:3)

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    DialogResult result = MessageBox.Show("Sure?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    if (result != DialogResult.Yes)
        e.Cancel = true;
}

答案 2 :(得分:1)

更简单的版本是这样的:

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 {
     e.Cancel = (MessageBox.Show("Sure?", 
                                 "Exit", 
                                 MessageBoxButtons.YesNo, 
                                 MessageBoxIcon.Question) == DialogResult.Yes);
 }

如果用户点击Yes按钮,则e.Cancel将设置为true 如果e.Cancel设置为true,则表单不会关闭 否则让表格关闭顺序运行它的过程。

答案 3 :(得分:1)

调用Application.Exit将再次触发FormClosing事件。解决方案比您想象的更容易:

if (result == DialogResult.No)
    {
        e.Cancel = false; //It works as you expected 
    }
    else
    {
        e.Cancel = true;
    }