Form1_Closing方法分配给表单关闭事件
本文关键字:表单 事件 分配 Closing 方法 Form1 | 更新日期: 2023-09-27 18:30:33
我定义了以下方法,以便在表单关闭时调用
private void TimeKeeper_Closing(object sender, EventArgs e)
但是,当我尝试在表单属性的"事件"部分中分配它时,它不会显示在列表中。我需要做些什么才能让它出现在那里吗?
编辑:对不起,最初发布了错误的方法...
关闭事件已过时,它可以追溯到 .NET 1.x。 Microsoft搞砸了那个,它在.NET 2.0中被FormCloseing事件取代了。 这告诉您更多关于表单关闭的原因。 e.CloseReason非常重要,您不想阻止Windows关闭。
这就是为什么你找不到它,你不应该再使用它了。 请注意,您接受的答案如何阻止程序编译。 您可能自己发现了 FormClosing 事件。
不妨全副武装地指出,一个班级听自己的事情是多么愚蠢。 事件适用于其他代码。 它们在设计器中工作得很好,这就是为什么你最终会写这样的代码。 但是理智的做法是覆盖该方法:
protected override void OnFormClosing(FormClosingEventArgs e) {
if (e.CloseReason == CloseReason.UserClosing) {
// Some code that might set e.Cancel = true
//...
}
base.OnFormClosing(e);
}
这有很多优点,除了忘记与设计器订阅事件的典型损失之外,派生类可以通过将 e.Cancel 设置回 true 来简单地改变此处做出的决定。
您必须将 EventArgs
更改为 FormClosesingEventArgs
private void TimeKeeper_Closing(object sender, FormClosingEventArgs e)