我有一个用户控件,我在该控件的 Load 事件下注册了空闲事件。
Control_Load(object sender, System.EventArgs e)
{
Application.Idle += new EventHandler(Application_Idle);
}
我知道这将在应用程序完成处理并达到空闲状态时触发。但是我真的很困惑什么是空闲的应用程序,这个用户控制加载事件在哪里注册空闲事件处理程序。当我每次遇到断点时,它会做什么这表示?
例如,我创建了一个包含此代码的表单
int counter = 0;
private void Form1_Idle(object sender, System.EventArgs e)
{
counter++;
label1.Text = counter.ToString();
}
private void Form1_Load(object sender, System.EventArgs e)
{
Application.Idle +=new EventHandler(Form1_Idle);
}
然后我创建了一些具有某些操作的表单。根据我的理解标签计数器不应该增加当我通过我创建的按钮进行操作时,因为它不是处于空闲状态,但现在发生的事情甚至是一些操作通过单击按钮标签计数器正在增加,除非我按下表单标题栏并移动表单。
即使这是主应用程序窗口,我还需要在关闭窗口时分离这些事件处理程序。如果是这样,如果我在 dispose 方法中这样做就足够了吗?
protected override void Dispose(bool disposing)
更新 如果我通过键盘按一些文本说“LARSEN”,在按字母“L”和“A”之间会发生空闲事件吗?