懂C# WINFORM的来

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:45:48
private void F_Main_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show( "您确实要退出吗?", "提示", MessageBoxButtons.OKCancel,MessageBoxIcon.Question) != DialogResult.OK)
{
e.Cancel = true;
}

}

else 执行的句里面 为什么是e.Cancel
而不是DialogResult.Cancel ?
我知道E 是参数,但是这上面不是DialogResult打点取OK吗?

MessageBox.Show( "您确实要退出吗?", "提示", MessageBoxButtons.OKCancel,MessageBoxIcon.Question) 返回值是 DialogResult结果 如果和 DialogResult.OK相等,也就是说点了OK。

e.Cancel = true; 是终止窗体的关闭。e 这里是窗体关闭事件,你要取消的是关闭事件。

不过你这么写不好。不清晰

DialogResult dialogResult = MessageBox.Show( "您确实要退出吗?", "提示", MessageBoxButtons.OKCancel,MessageBoxIcon.Question)

if(dialogResult == DialogResult.OK)
{
e.Cancel = true;
}

就是点窗口叉叉的时候弹个框要你确认,你点了否,也就是MessageBox返回值不是DialogResult.OK的时候,取消FormCloing的事件,e.Cancel用来取消事件的

DialogResult返回的是你弹出的那个确认对话框的选择
e.cancel是指对于"窗体关闭"这个事件的取消