[问题] 如何将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