在哪里添加eventhandler

时间:2016-03-08 12:38:16

标签: c# events

我刚刚通过了一项众所周知的测试,我很想知道这个问题的答案:

“场景:您正在编写一个具有”启动任务“按钮和”任务信息“按钮的表单。”任务信息“按钮启动被禁用,但每当单击”启动任务“按钮时,”任务“ “信息”已启用,并且向其添加了一个事件处理程序,用于向打印机发送状态报告。任务完成后,“任务信息”按钮再次被禁用,直到再次单击“启动任务”。任务可能需要很多要完成的时间,有时需要在任务开始和接近结束时打印状态报告。

这完全适用于第一项任务,但您会发现,对于后续任务,会向打印机发送额外的状态报告,浪费纸张并通过它们进行排序。 根据上面的场景,您如何解决问题?

选择:

  1. 禁用“任务信息”按钮内的“任务信息”按钮,单击处理程序。
  2. 在“任务信息”按钮单击处理程序中禁用“启动任务”按钮,然后在任务完成时重新启用它。
  3. 为“开始任务”按钮和“任务信息”按钮实现IDisposable接口。
  4. 在“任务信息”按钮单击处理程序中增加一个计数器,并使其余代码仅在计数器的值为零时执行。
  5. 在表单的构造函数中添加“任务信息”按钮的事件处理程序,而不是“启动任务”按钮的处理程序
  6. 我个人更喜欢回答#5。但是了解社区的观点是很有意义的。

1 个答案:

答案 0 :(得分:0)

是的,正确的解决方案是5号。