日期:2014-05-18  浏览次数:21173 次

如何批量动态给控件(combobox label)赋值?
数据库字段名做模板设置,字段名存在一个表中,现在有20个字段,用一个循环来对该20个控件赋值及属性。
网上查到一种好像可以用反射来做,但是找到的一种编译没错,但是object每次取得都为空,请各位帮忙看看。
界面上combobox控件从combobox1到combobox20,Label控件从label1到label20;

private object t_o;
private System.Windows.Forms.ComboBox t_cmb;
private System.Windows.Forms.Label t_lb;
private string[] values;

for(i=0;i++;i<=20)
{
t_o = this.GetType().GetField("comboBox"+i.tostring()); //运行时t_o总为空,无法取得对象?????
t_cmb = (System.Windows.Forms.ComboBox)t_o;
t_cmb.DropDownStyle=ComboBoxStyle.DropDown;
t_cmb.DataSource=values;

t_o = this.GetType().GetField("label"+i.tostring());
t_lb = (System.Windows.Forms.ComboBox)t_o;
t_lb.text="";
}

------解决方案--------------------
哈 哈 , 那 给 我 吧
谢 谢 楼 主 。
------解决方案--------------------
LZ....这么有规律的事情...其实没必要用反射.......
你直接Find出来后强制转换一下。。。。
------解决方案--------------------
lz全部赋Text属性吗?

那可以as Control
然后访问Control的Text属性就好了。