我在Windows Forms窗體上有很多事件。我有一個反饋標籤,我必須編寫feedbaxk.Text =「」;在每個事件的開始。替代Windows窗體中的PageLoad
在ASP.NET中,我一直使用在每次回發觸發的page_load
事件中只寫一次,但Form 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結束(在那之後我不添加任何更多的事件)說。然後爲所有事件添加一些常用功能(比如更改標籤文本)。
- 我可能能夠繼承父級的所有事件,並在該事件中添加所需的功能,然後爲每個事件添加(覆蓋)特定功能。
由於基礎Windows消息到達Form窗口句柄而引發了許多事件(並非全部),因此您可以重寫受保護的Form.WndProc方法並嘗試編寫一些catch-all系統。根據你想要最終達到的目標,這可能是一個開始。 –
@SimonMourier說了我的第二點。連接到WndProc應該足以滿足你的需求。 –
我正在SimonMourier指導下工作。 @Lief!它不僅僅是關於buttonclick,而是關於所有事件,例如任何添加的事件。一個textbox_leave一個combobox_selectedIndex_Changed一個textbox_backgroudColorChanged等... – Sami