我为事件关闭形式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");
答案 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;
}