如果用户想通过点击退出图标或ALT + F4退出应用程序,我想提出一个对话框,质疑用户,如果他/她真的是肯定退出.
如何在应用程序实际关闭之前捕获此事件?
mus*_*fan 18
查看表单的OnClosing事件.
以下是该链接的摘录实际检查文本字段的更改并提示保存:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// Determine if text has changed in the textbox by comparing to original text.
if (textBox1.Text != strMyOriginalText)
{
// Display a MsgBox asking the user to save changes or abort.
if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// Cancel the Closing event from closing the form.
e.Cancel = true;
// Call method to save file...
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以更改文本以满足您的需要,然后我认为您可能希望根据您的文本切换DialogResult.Yes到DialogResult.No.
以下是一些适合您的修改代码:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if(MessageBox.Show("Are you sure you want to quit?", "My Application", MessageBoxButtons.YesNo) == DialogResult.No)
{
e.Cancel = true;
}
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*eve 11
您应该订阅Form_Closing事件
在那里发布一个对话框,如果用户中止结束,则将FormCloseEventArgs.Cancel设置为true.
例如,在Form_Load中或使用设计器,订阅事件
Form1.FormClosing += new FormClosingEventHandler(Form1_Closing);
....
private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
{
DialogResult d = MessageBox.Show("Confirm closing", "AppTitle", MessageBoxButtons.YesNo );
if(d == DialogResult.No)
e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)
根据情况,用这种处理来惹恼用户并不总是一件好事.
如果您拥有有价值的修改数据并且不希望风险失去更改,那么这总是一件好事,但如果您仅将此作为关闭操作的确认,那么最好什么都不做.
| 归档时间: |
|
| 查看次数: |
22205 次 |
| 最近记录: |