窗體繼承中,怎么样讓某個物件不去繼承父窗體事件

.Net技术 码拜 8年前 (2016-02-29) 713次浏览
窗體2繼承窗體1,窗體1上面有按鈕按下后會觸發click事件,messagebox.show(“111”);現在本人將窗體1的按鈕Modifires属性设置为Public,在窗體2中觸發click事件寫為messagebox.show(“222”)
本人想實現觸發窗體2的click事件時候顯示“222”,但是結果是顯示“111”然後顯示“222”?怎麼辦,程式執行了窗體1和窗體2的兩個事件,本人該怎么样處理?
本人只要顯示“222”。
解决方案

5

那个不叫做继承,那个叫做“重写(override)”。
你在读各种正规的代码中,经常会看到有

void onClick(.....)
{
....
}

这种代码,当Form1捕获了Click事件之后,会调用onClick方法,而不是直接去执行什么 MessageBox.Show。这个 onClik 就是给子类去重写的专门设计的接口方法。

10

两种方法。
1. 将窗体1中点击按钮处理部分写成一个virtual虚函数,然后直接在窗体2中直接重写它,不需要为窗体2注册click事件
2. 在给窗体2中注册click事件之前先调用按钮的RemoveHandler函数移除以前全部的click事件处理函数。

5

这个就想老p说滴,对方没给正路,你只能本人走歪路
本人能想到两个歪路
1.本人在写个button4_Click overrid或new
2.假如这样不行,那好把,那就把 button4.Click-=button4_Click ,把上面滴事件委托给毙掉,然后在+=本人的事件处理

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明窗體繼承中,怎么样讓某個物件不去繼承父窗體事件
喜欢 (0)
[1034331897@qq.com]
分享 (0)