检查事件是否至少被触发过一次

Elm*_*lmo 3 .net c# vb.net events

我正在跟踪一个事件是否像这样被触发:

bool IsFormLoaded;
private void Form1_Load(object sender, EventArgs e)
{
    //Do stuff
    IsFormLoaded = true;
}
private void button1_Click(object sender, EventArgs e)
{
    //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

但是对于许多事件这样做并不优雅,所以我想要一个解决方案,让我检查是否有任何事件像这样被触发:

bool IsFormLoaded = IsEventFired(Form1_Loaded);
bool IsButton1Clicked = IsEventFired(Button1_Click);
Run Code Online (Sandbox Code Playgroud)

Vla*_*adL 5

您正在使用设计师处理事件.您可以在构造函数中执行此操作,如下所示:

this.Load += delegate { IsFormLoaded = true; };
button1.Click += delegate { IsButton1Clicked = true; };
Run Code Online (Sandbox Code Playgroud)

IMO它更优雅:)

  • 这只是使Form引用本身,所以它不会导致任何泄漏. (3认同)