2012-02-01 35 views
0

我有一個類(1類) 我有一個功能,花葯類:從一個類這一類的事件發送功能的按鈕,其他類

class2 _class2 = new class2();  
protected void Button_Click(object sender, EventArgs e) 
{ 
    //do something 
} 

現在我有另一個類(等級2) 它 我想送按鈕的功能(Button_Click)這樣我就可以把它插入到 按鈕事件單擊循環 (button.click + =)

的Class2中創建多個按鈕,有一個按鈕對於class1, 我想要那個w母雞有人點擊 類1 按鈕將進入事件功能(Button_Click)之一,我希望我是清楚的 感謝您的幫助

+0

我覺得我明白你想要什麼,但你的樣本不清楚(Class 1/2)請發佈一個完整的樣本與兩個類。 – 2012-02-01 19:18:35

+0

你不能在類之間發送任何東西,它們是靜態編譯時的東西。你想tpo發送它之間的對象? (答案部分在於類和對象之間的差異) – 2012-02-03 12:06:55

回答

0

變化protected void Button_Clickpublic void Button_Click。 然後從別的地方,去:

Button b; // defined in class2, for example 

class1 _class1 = new class1(); 

b.Click += new EventHandler(_class1.Button_Click); 
+0

但我怎麼能發送函數(Button_Click)從class1到class2使用class2約束器 – user723686 2012-02-01 18:28:56

+1

在那個例子中交換1和2,我猜。 – 2012-02-01 18:36:19

+0

新的EventHandler(...)是多餘的,你可以簡單如此+ = _class1.Button_Click – 2012-02-03 12:07:48

0

你是不是想「泡」例如從一個用戶控制主叫用戶控件的事件?如果是這樣,你需要把這些東西:

在控制,其中按鍵(一): - 事件處理程序添加到button.Click

於呼叫控制(B) - 訂閱事件創建一個函數,它是在標記引用:用戶控件(一)theeventhandlerina =「b中的作用」

0

如果Class2中是一個類中,你可以有一個附加功能,一些similare到

_class2 = new Class2(); 
_class2.AddButton("button1",ButtonClick); 
_class2.AddButton("button2",ButtonClick); 
_class2.AddButton("button3",ButtonClick); 


//in class2 
public void AddButton(string buttonName, EventHandler handler) 
{ 
    var newButton = new Button(buttonName); 
    newButton.click+= handler; 

} 

這當然是一個人爲的例子,但它應該得到跨越的點

相關問題