從問題者的發的貼子: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集合的一些方法了! 這些是我自己摸索出來的,不足之處還請指教!
|