看板 C_Sharp 關於我們 聯絡資訊
四個checkbox checkbox1 checkbox2 checkbox3 checkbox4 另有一個字串 string a="checkbox"; 如果想用a字串當作判斷, 判斷是否有checked for(int i=1;i<4;i++) { string a="checkbox"; a=a+i; (將字串轉換成元件名稱) if(a.checked==true) messagebox.show(a+" checked"); } 請問上色那段程式碼 要如何實現呢? 因為有許多checkbox要做一樣的事情, 想說利用這種方法簡化程式碼. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.231.77
kinwind:在asp.net上 我是會用FindControl 這個方法 04/22 14:42
liaommx:我是用winform,也能用這方法? 04/22 14:50
jhchou:winform可以用Controls.Find google一下用法吧 04/22 14:59
liaommx:((CheckBox)this.Controls.Find(a, true)[0]).Checked == 04/22 15:17
liaommx:搞定,感謝 04/22 15:17
F23ko:等等 我記得這會出問題.... 當元件名稱不一樣時,會找不到 04/22 15:41
F23ko:我記得板上有人問過類似的問題,他想用程式設定一大堆元件, 04/22 15:43
F23ko:那時看到兩種方法,其中一種就是這個,這也可行,但是會受到 04/22 15:43
F23ko:命名的限制 04/22 15:44
F23ko:另外一種適用foreach詳細內容我現在爬文爬不到 = = 04/22 16:05
jhchou:Find本來就是用名字來找control,名稱不一樣當然找不到啊 04/22 16:11
jhchou:用foreach大概就是要自己把Controls裡面每個都抓出來 04/22 16:13
jhchou:看是不是自己要找的那個control了吧 04/22 16:14
liaommx:我的方法是已知確切的名字,所以find應該就可以了 04/22 16:36
chancewen:如果包在子控制項裡面就...... 04/22 22:56
ashram:要自己找的話就要用recursive 04/23 00:13