验证关闭方法和 Windows 关闭按钮 C#
Validating Close method and Windows Close button C#
我有一个类似 MainPage_FormClosing(object sender, FormClosingEventArgs e)
的方法,我正在使用 Close 方法关闭表单。
此 this.Close() 方法还会触发 MainPage_FormClosing
方法。
我只想在用户单击表单 Windows 关闭 按钮 时执行一些特定功能。
我在这里看到了一些其他的问题,他们使用了类似String.Equals((sender as Button).Name, @"CloseButton")
的方式来验证。
发件人对我来说总是空的
我如何验证这一点?
如果您不能使用 e.CloseReason
,最简单的解决方案是使用一个标志 - 拥有一个表单级布尔变量,它只会在您在代码中和在窗体关闭事件处理程序。这样的事情会做:
private bool _isClosedFromCode = false;
...
private void CloseForm()
{
_isClosedFromCode = true;
Close();
}
...
private void MainPage_FormClosing(object sender, FormClosingEventArgs e)
{
if(_isClosedFromCode)
{
// do your stuff here
}
_isClosedFromCode = false;
}
我有一个类似 MainPage_FormClosing(object sender, FormClosingEventArgs e)
的方法,我正在使用 Close 方法关闭表单。
此 this.Close() 方法还会触发 MainPage_FormClosing
方法。
我只想在用户单击表单 Windows 关闭 按钮 时执行一些特定功能。
我在这里看到了一些其他的问题,他们使用了类似String.Equals((sender as Button).Name, @"CloseButton")
的方式来验证。
发件人对我来说总是空的
我如何验证这一点?
如果您不能使用 e.CloseReason
,最简单的解决方案是使用一个标志 - 拥有一个表单级布尔变量,它只会在您在代码中和在窗体关闭事件处理程序。这样的事情会做:
private bool _isClosedFromCode = false;
...
private void CloseForm()
{
_isClosedFromCode = true;
Close();
}
...
private void MainPage_FormClosing(object sender, FormClosingEventArgs e)
{
if(_isClosedFromCode)
{
// do your stuff here
}
_isClosedFromCode = false;
}