作者liaommx (Orz)
看板C_Sharp
標題[問題] 如何將字串轉換成元件名稱?
時間Thu Apr 22 14:30:50 2010
四個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
1F:→ kinwind:在asp.net上 我是會用FindControl 這個方法 04/22 14:42
2F:→ liaommx:我是用winform,也能用這方法? 04/22 14:50
3F:→ jhchou:winform可以用Controls.Find google一下用法吧 04/22 14:59
4F:→ liaommx:((CheckBox)this.Controls.Find(a, true)[0]).Checked == 04/22 15:17
5F:→ liaommx:搞定,感謝 04/22 15:17
6F:推 F23ko:等等 我記得這會出問題.... 當元件名稱不一樣時,會找不到 04/22 15:41
7F:→ F23ko:我記得板上有人問過類似的問題,他想用程式設定一大堆元件, 04/22 15:43
8F:→ F23ko:那時看到兩種方法,其中一種就是這個,這也可行,但是會受到 04/22 15:43
9F:→ F23ko:命名的限制 04/22 15:44
10F:推 F23ko:另外一種適用foreach詳細內容我現在爬文爬不到 = = 04/22 16:05
11F:→ jhchou:Find本來就是用名字來找control,名稱不一樣當然找不到啊 04/22 16:11
12F:→ jhchou:用foreach大概就是要自己把Controls裡面每個都抓出來 04/22 16:13
13F:→ jhchou:看是不是自己要找的那個control了吧 04/22 16:14
14F:→ liaommx:我的方法是已知確切的名字,所以find應該就可以了 04/22 16:36
15F:推 chancewen:如果包在子控制項裡面就...... 04/22 22:56
16F:推 ashram:要自己找的話就要用recursive 04/23 00:13