關於動態產生控制項和動態獲得控制項的控制代碼值
來源:互聯網
上載者:User
動態|控制項 從問題者的發的貼子:help me裡面需要動態獲得控制項的控制代碼值,這些日子在vs.net裡試了一下,總結出一點點經驗,如下:
1.動態產生控制項:
不管是在asp.net裡還是在windows application裡,每一個控制項都可以作為母控制項,在其中添加一些子的控制項,當然添加可以是手工添加進去,而動態添加控制項一般如下:(asp.net中)
dim textbox as textbox '動態添加一個textbox控制項
textbox=new textbox()
textbox.id="test" '指定這個textbox的一些屬性
textbox.text="好玩"
me.controls.add(textbox) '在當前視窗上動態添加這個textbox
在vs.net裡頭每個控制項都有controls屬性,此屬性返回它所包含的子控制項的集合,可以用add方法動態添加一個控制項,clear方法清空所有控制項等等
2.動態獲得控制項的控制代碼值(也在asp.net中)
如果要獲得一個控制項的子控制項的控制代碼值,只需從它的controls集合裡返回一個就可以,假設上例中視窗中只有我們動態產生的textbox一個控制項
則:dim textbox as textbox
textbox=me.controls(0) '獲得控制代碼值,如有多個,則可用me.controls(1)、me.controls(2)等等
response.write(textbox.id()) '它的屬性值
response.write(textbox.text())
而如果要獲得它的母控制項(即包含它的控制項)的控制代碼值
只需這樣:textbox.parent即為當前視窗的控制代碼值了
也可以遍曆一個控制項下所有的子控制項
for i=0 to me.controls.count-1
response.write(me.controls(i).id)
next
在windows application裡像controls的各種屬性也是能用的,而且用法於在asp.net中一致,只是在beta2版裡彈不出來這個屬性,不知為何,也許這是beta2編譯器的一個小bug巴!
總結:用動態方法來獲得和產生控制項給程式帶來很大的靈活性!其主要是用控制項的controls集合的一些方法了!
這些是我自己摸索出來的,不足之處還請指教!