iT邦幫忙

0

C# groupbox 內部按鈕被按了,其處理事件的方法可以全只到同一個方法嗎?

各位大大好

小弟正在嘗試在一個GroupBox內放入15個按鈕
任何一個按鈕被按下時
要跳到同一個副程式內
定在其中改變該按鈕的顏色

我已經將按鈕群共同放在一個List陣列內
只是找不到這個事件是哪一個
由於之後還有可能再新增更多按鈕
希望這個事件是由Group觸發的

froce iT邦大師 1 級 ‧ 2020-03-23 17:25:34 檢舉
https://dotblogs.com.tw/yc421206/2009/02/16/7206
就跟樓下說得一樣,補充範例

2 個回答

0
打狗松鼠
iT邦新手 4 級 ‧ 2020-03-23 13:27:40

先了解C#對事件的處理機制會比較好

關鍵字:事件、委派

我已經將按鈕群共同放在一個List陣列內
只是找不到這個事件是哪一個

原因在於「雖然都是Click事件,但每個控制項實作的方式不同」,所以GroupBox有GroupBox的實作方式,Button有Button的實作方式,就算你找到GroupBox的Click,也一樣無法套用在Click上(當然有奇技淫巧,只是不太建議)

更實際的方法是定義一個你要實作功能(這邊的例子是改變按鈕的顏色)在函式內,用委派包起來之後,迭代附加在每個按鈕的Click事件上

事件會觸發委派包起來的方法,一個事件可以觸發多個委派,依照附加在事件的先後順序觸發。

0
小魚
iT邦大師 1 級 ‧ 2020-03-23 20:29:24

如果都是Button可以指到同一個用法,
跟Group無關,
但是你要能知道觸發哪個按鈕,
我通常都是用Name來區分,
譬如 Name = Button1, Button2 ... ... 之類的.

你這東西有點類似遊戲的感覺,
我之前寫過一個數獨的遊戲,
就是 9 x 9 = 81 個按鈕.

lazywayne iT邦新手 5 級 ‧ 2020-03-24 08:41:51 檢舉

可以指到方法了,謝謝
不過好像要從sender去判斷是哪一顆被按下
但是這個object要怎麼開呀?
在除錯器可以用監看式看到其內容,嘗試把它變成可以給程式用的

lazywayne iT邦新手 5 級 ‧ 2020-03-24 08:46:43 檢舉

可以了我用強制轉型

我要發表回答

立即登入回答