[問題] 如何將form上面多個Button集合在一起寫程式...

作者: nietz (查拉圖斯特拉如是說)   2020-03-12 13:56:47
小弟是超新手... 剛學Winform
form1上面我放置32個 Button ,這些Button 在按下時所執行的工作
其實非常的類似,可能就一個參數不同的差別
現在我有32個 private void buttonXX_Click( ) ...
... 寫不下去了...
我粗淺的構想是把 32 個 Button 全放到 List 或 Array 中 ...
但完全不知如何下手,懇請大大們指引個方向
感激~
作者: ian90911 (xopowo)   2020-03-12 14:23:00
可以查一下 委派 註冊事件 可能可以配合tag property
作者: testPtt (測試)   2020-03-12 14:25:00
var Button=new Button[32] 簡單寫一下foreach(var b in Button)b.click+=(o,e)=>job(o,e)
作者: luiGiF (luiGif)   2020-03-12 15:55:00
click enent都指到同個btnclick()去判斷if (Button)sender == btn01do...else if ...
作者: Kuei1126 (神鬼巨根)   2020-03-13 00:06:00
同四樓 確認每一個button在屬性視窗都的Click事件都連結到同一個方法就好但使用的Button較多時建議使用switch https://i.imgur.com/2dTFjLG.jpg
作者: Litfal (Litfal)   2020-03-13 12:00:00
https://docs.microsoft.com/zh-tw/dotnet/framework/winforms/controls/how-to-add-controls-to-windows-forms下面有以程式方法建立控制項,配合上面的註冊事件
作者: O2000 (吵死了 閉嘴啦)   2020-03-13 13:40:00
如果只有參數的差別,也可以把參數放在Button的Tag屬性。
作者: s4300026 (s4300026)   2020-03-14 07:23:00
tag 屬性? 又多學到一招了
作者: mepowerlmay (用心,找對人)   2020-03-22 00:10:00
...TAG 非必要少用 大家都用tag 會造成系統崩潰感覺高手變多了qq
作者: luiGiF (luiGif)   2020-03-24 13:29:00
推樓上 系統龐大時tag的維護不方便 能不用就不用
作者: O2000 (吵死了 閉嘴啦)   2020-03-24 14:20:00
在同一個function中用if...else或switch列出全部button處理,跟 每個button各自產生一個click函式,我是不覺得寫起來有差多少,還是傾向把差異放在button裡面。至於tag我只放過簡單的數字或字串,用到系統崩潰或維護不易…,到底是放了什麼進去?我很好奇!
作者: kobe8112 (小B)   2020-03-24 23:40:00
良好的習慣可以幫助自己在更大的專案裡面有較佳的體質,一個知其然的人在權衡下選擇實作方法,跟一個初學者選擇同樣的實作方法,兩者本質上是不同的,板友只是好心提醒,回應不需要這麼多刺吧,心平氣和討論程式不難的
作者: annies5 (念渝)   2020-04-06 20:23:00
重點是,參數長什麼樣子?你如何傳遞這些參數?listbox+button 1組就解決了

Links booklink

Contact Us: admin [ a t ] ucptt.com