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

WINDOWSFORM.在panel中根据数据源自动创建RadioButton
C# code


string [] list=new string[5]{"a","b","c"};
for(int i=0;i<list.length();i++){
                RadioButton rb = new RadioButton();
                rb.Name ="radio"+list[i]
                rb.Text = list[i];
                this.panel1.Controls.Add(rb);
}



我现在是从sql中得到数据源,然后,循环的早panel上面创建单选按钮,数值是都得到了,问题是,我创建出来的所有的单选按钮值显示第一个创建的单选按钮,貌似其他的单选按钮都在其坐标下覆盖了
这样才能让创建出的单选单牛在panel中正常显示

------解决方案--------------------
创建出的没一个按钮都改一下Location.Y属性。错开了就看见了。
C# code

for(int i=0;i<list.length();i++){
                RadioButton rb = new RadioButton();
                rb.Location.Y=i*30;
                rb.Name ="radio"+list[i]
                rb.Text = list[i];
                this.panel1.Controls.Add(rb);
}

------解决方案--------------------
rb.Location.Y=new Point(rb.Location.X,i*30);
------解决方案--------------------
不对,这个才是
rb.Location=new Point(rb.Location.X,i*30);
------解决方案--------------------
奇怪了,这个属性是 int 的,而且在MSDN上查到它的语法是public int Y { get; set; }

按理说这样的话应该可以直接赋值才对吧?怎么会出错了的?