关于动态生成控件和动态获得控件的句柄值

动态|控件

从问题者的发的贴子: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集合的一些方法了!
这些是我自己摸索出来的,不足之处还请指教!  

时间: 2024-10-02 08:29:18

关于动态生成控件和动态获得控件的句柄值的相关文章

C#动态生成控件以及添加事件处理

有时候需要在程序运行到一定时候或者某个事件之后需要动态生成控件 在C#下一般方式是: private Button Db=new Button() ; Db.Name="Dy_Button" //设定名称 Db.Location=new Point(100,200);//设定位置 ....//其他属性设置 //这里添加消息处理 .. this.Controls.Add (Db);//添加到控件组中 这样就完成了动态生成但是需要给控件添加消息处理事件 那么现在就需要在生成控件添加到控件组

asp.net-ASP.NET C#如何获取动态生成控件的值?

问题描述 ASP.NET C#如何获取动态生成控件的值? 假如我在后台动态生成了控件: TextBox textbox=new TextBox(); textbox.ID="textbox1"; panel.Controls.Add(textbox);//panel是一个.NET控件Panel 请问在运行程序后怎样获取这个textbox1里面填入的值? 希望大神给予解答!谢谢! 解决方案 textbox1.getText();这样就获取到了textbox1中输入的文本值了. 如果回答对

Asp.net中使用文本框的值动态生成控件的方法_实用技巧

看到一个网友,有论坛上问及,动态的生成checkbox控件,在文本框中输入一个"花"字,点一下"生成"按钮,就会在下面生成一个checkbox,它的text属性是"花".再输入一个"鸟",点一下按钮,就会生成第二个checkbox控件,text属性是"鸟"... Insus.NET的解决方法很简单,就是每次在文本框输入的值都存起来,然后把这些数据绑定至一个CheckBoxList控件上就行了. 详细,先创建

wpf-WPF 后台动态生成控件

问题描述 WPF 后台动态生成控件 我的项目中需要生成很多个button列表,所以需要后台添加,但是生成的button还有template,查了一下,目前就我所知生成的方法是: FrameworkElementFactory 和XamlReader.Load,前者看到的资料说效果很不好,后者却不知道怎么做,请教各位大神! 解决方案 http://www.cnblogs.com/KevinYang/archive/2010/09/06/1818981.html

如何将ASP.NET动态生成控件的值赋给页面静态控件

问题描述 如何将ASP.NET动态生成控件的值赋给页面静态控件最近作一个产品发布功能,但是由于产品的技术参数不统一,需要根据产品的类型动态生成控件.动态控件生成后需要多控件赋值,但是所赋的值需要给页面的静态控件,通过静态控件添加到数据库的技术参数字段下.将动态控件的赋值再给页面静态控件应该如何作呢?请教高手,望给予指点哦,急啊!这是我写的动态控件的生成代码://通过类型绑定技术参数privatevoiddatabindpramametersbyproducttype(intnid){ChinaE

asp.net 生成控件后自动获取控件的name值

asp教程.net 生成控件后自动获取控件的name值 //用控件的tag属性比较方便 private void message(object sender,eventargs e) {       picturebox pic = sender as picturebox;       string lblname=((label)pic.tag).name;       messagebox.show(lblname); } //动态生成控件时,指定name,然后找到它: foreach (

c# tablelayoutpanel动态添加控件时Controls.Add(控件对象,0,0) 多次后不会在第一行添加了

问题描述 如题c#tablelayoutpanel动态添加控件时Controls.Add(控件对象,0,0)多次后不会在第一行添加了后面新增的都会在第二行第三行 解决方案

动态子类化CComboBox以得到子控件EDIT及LISTBOX

动态子类化CComboBox以得到子控件EDIT及LISTBOX Joise.LI写于2004-4-6 ComboBox是比较常用的一个控件,有三种样式:CBS_SIMPLE(简单),CBS_DROPDOWN(下拉),CBS_DROPDOWNLIST(下拉列表),其中下拉列表样式是不允许输入的,简单样式是永远都显示下拉框的. ComboBox是由一个ListBox和一个Edit框组合而成.本文将以限制只能输入电话号码为例介绍子类化过程得到Edit框(类似的可以得到ListBox). 电话号码只能

动态加载图片路径 保持JavaScript控件的相对独立性_javascript技巧

当时考虑有三种方法: 1.直接把路径写在js文件里,但如果引用页面路径层级改变就没辙了. 2.写个class,放在主题包里的css文件或者单独创建一个css文件给日期控件专用.但是控件中的其他元素并没有使用class的需要,单独建立相应css文档似乎小题大做. 3.把以上两个方法排除后,自然要采用动态加载图片路径的方法咯. 关键代码如下: 复制代码 代码如下: //创建一个全局变量保存路径 var imgRootUrl = ""; //获取图片路径所在目录 var strPath=wi