喂!我不是想在这里推动我的运气,但我有另一个c#问题。 我尝试过使用谷歌发现的所有可能事件。 这是代码:
private void Form1_OnClose()
{
MessageBox.Show("I was closed -2");
}
private void Form1_Exit(object sender, EventArgs evArgs)
{
MessageBox.Show("I was closed -1");
}
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBox.Show("I was closed 0");
}
private void Form1_Closed(object sender, EventArgs e)
{
MessageBox.Show("I was closed 1");
}
private void Form1_FormClosed(Object sender, FormClosedEventArgs e)
{
MessageBox.Show("I was closed 2");
}
当我执行Alt + f4或单击X按钮时,其中没有一个触发任何内容。 我在这里做错了什么?
答案 0 :(得分:12)
您可能缺少实际的订阅代码,这是以下几点:
this.Closing += Form1_Closing;
相反,请尝试覆盖 OnXXX 方法 - 这是首选方法。
答案 1 :(得分:2)
错误可能是您没有在正确的时间连接事件。检查program.cs文件。看起来应该是这样的:
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;
namespace Test
{
internal class Program
{
private static void Main(string[] args)
{
Form form = new Form2();
form.Closing += form_Closing;
Application.Run(form);
}
private static void form_Closing(object sender, CancelEventArgs e)
{
MessageBox.Show("Closing");
}
}
}
我刚刚运行了这个并且事件被解雇了。
答案 2 :(得分:1)
这些方法是否实际分配为事件处理程序?转到设计模式,选择表单,然后单击属性窗口上方的小闪电。然后找到你想要的事件(可能关闭)并双击它。