0

我对我要问的问题有现实的需求,但为了简单起见,我将问题归结为这一点。

  • 创建 C# windows 窗体应用程序项目
  • 在表单中添加一个文本框和一个按钮。
  • 向文本框添加离开事件。
  • 将 Click 事件添加到按钮。

使用此代码

    private void textBox1_Leave(object sender, EventArgs e) {
        button1.Dispose();
    }

    private void button1_Click(object sender, EventArgs e) {
        MessageBox.Show("in button 1");
    }

运行项目并将光标放在文本框中。现在点击按钮离开。

通过离开文本框会导致按钮被释放,但按钮的 Click 事件位于文本框的 Leave 事件后面等待处理。但是没有文本框了,所以你得到了 ObjectDisposedException。

所以,....问题是我如何消除排队事件,以便我可以安全地处理按钮。

4

0 回答 0