我繼承了一個控件,
1、在控件的可重寫事件(overrides)中,有onClick事件,
在控件的事件中,有click事件,
這兩個事件有什麽區別?
2、如果我在事件click(不是overrides的)中,寫了代碼,然後再是我自己繼承的這個控件時,
在myCtrl.Click事件中,又寫了code,執行的時候,兩個代碼都執行了
如果,我想在不想執行我繼承控件裏自己寫的code,只執行在控件使用中的code,我在基類中該怎麽寫?
還有一個問題,就是事件的傳遞性,有沒有這方面的文章介紹。
謝謝!
測試:
1、寫在Protected Overrides Sub OnClick(ByVal e As System.EventArgs)中的代碼,將在控件的使用中之行,而不執行Private Sub Component1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click 和使用該控件的Private Sub Component1_Click, 所以,如果在Protected Overrides Sub OnClick(ByVal e As System.EventArgs)中不寫代碼,將會屏蔽 控件的Click事件。
2、去掉Protected Overrides Sub OnClick(ByVal e As System.EventArgs) 后,依次觸發的順序是:Private Sub Component1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click (繼承控件中的),然後是:使用該控件的Private Sub Component1_Click。
可見,事件的傳遞是先執行控件中事件,在執行使用控件中的Code.
博客围绕控件继承展开,探讨了可重写的onClick事件与普通click事件的区别,还提出在继承控件时,若不想执行继承控件里自己写的代码,仅执行使用控件时的代码,在基类中该如何编写的问题,同时测试了事件传递顺序。
236

被折叠的 条评论
为什么被折叠?



