【发布时间】:2012-08-29 08:55:02
【问题描述】:
我在Windows Forms 表单上有很多活动。我有一个反馈标签,我必须写 feedbaxk.Text="";在每个事件的开始。
在ASP.NET 中,我一直在每次回发时触发的page_load 事件中只写一次,但表单加载只触发一次。
我尝试用我的问题的标题进行搜索,发现以下两个最接近的答案:
有一些相关材料,但我无法从这些以及更多其他材料中得到满意的答案。
如何在 Windows 窗体中检测将要触发的事件?
更新:通过另一种方式谷歌搜索,我发现了一个与另一个链接链接的关闭链接,Find all event handlers for a Windows Forms control in .NET 和 Is it possible to “steal” an event handler from one control and give it to another?。看完这些我觉得有可能
- 我可以在 Form_Load 结束时以 win 形式获取所有事件的列表(之后我不再添加任何事件)。然后为所有事件添加一些通用功能(比如更改标签文本)。
- 我或许能够从父事件继承我的所有事件,并在该事件中添加我想要的功能,然后为每个事件添加(覆盖)特定功能。
【问题讨论】:
-
许多事件(不是全部)是由于底层 Windows 消息到达窗体窗口句柄而引发的,因此您可以覆盖受保护的 Form.WndProc 方法并尝试编写一些包罗万象的系统。根据您最终想要实现的目标,这可能是一个开始。
-
我赞同@SimonMourier 所说的话。连接到 WndProc 应该足以满足您的需要。
-
我正在研究 SimonMourier 指导。 @利夫!它不仅仅是关于按钮点击,它是关于所有添加的事件,例如一个 textbox_leave 一个 combobox_selectedIndex_Changed 一个 textbox_backgroudColorChanged 等等...
-
通过另一种方式谷歌搜索,我发现了一个与另一个链接链接的关闭链接....stackoverflow.com/questions/3855985/… ------ stackoverflow.com/questions/293007/… ----- @HansPassant。你已经回答了一些类似的问题。请参阅我的更新。我期待你能最好地回答这个问题
标签: c# winforms postback desktop-application