您的位置:程序门 -> .net技术 -> c#



c# 批量修改控件属性


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c# 批量修改控件属性[已结贴,结贴人:luodanyu]
发表于:2007-03-12 20:38:26 楼主
例如我想修改radiobutton1,radiobutton2,radiobutton3……的checked属性。
是不是要一个一个的写?

能不能用下面这种方式
  for(int   i=1;i <控件总数;i++)
      {
            radiobutton   +   i.checked=true;
      }
我知道这样写不行,有没有别的写法表达出这种意思?

----------------------------------

顺便问一句八卦的,单选按钮为什么叫radiobutton,radio不是无线电的意思吗?
发表于:2007-03-12 20:59:311楼 得分:2
this.controls
然后,判断   控件的类型
发表于:2007-03-12 21:00:022楼 得分:4
思路是对了地!


for(int   i=1;i <控件总数;i++)
      {
            radiobutton   rd   =   this.findcontrol( "radiobutton "+i.tostring());    
            rd....想干啥就干啥

  }
发表于:2007-03-12 21:55:053楼 得分:1
楼上正解
发表于:2007-03-13 08:55:174楼 得分:0
up

csshooter(sharp   shooter),我的是winform程序,是不是和web程序有点差别,我运行不了~


-------------------------------------------------------------------

错误         “radiobutton”是“system.windows.forms.radiobutton”和“system.web.ui.webcontrols.radiobutton”之间的不明确的引用


错误2 “testw.form1”并不包含“findcontrol”的定义
发表于:2007-03-13 12:08:405楼 得分:4
private   void   value_change()
                {
                        int   i=0;
                        foreach   (control   test   in   this.controls)
                        {
                                i++;
                                if(test   is   system.windows.forms.radiobutton)
                                {
                                              test.text= "test "+i;
                                }
                        }
                }     //winform的是这样的,你可以自己改成其他控件属性
发表于:2007-03-13 12:54:426楼 得分:6
try..

foreach   (control   ctl   in   this.controls)
                        {
                                if   (ctl   is   radiobutton)
                                {
                                        //设置checked属性为true
                                        ((radiobutton)ctl).checked   =   true;
                                }
                        }
发表于:2007-03-13 12:56:447楼 得分:0
顺便说一下,如果你的多个radiobutton都同在一个容器(form或者groupbox等),那么同一时刻只能有一个radiobutton被选中...

即执行上面的代码后,最后也只能有一个radiobutton被置为选中状态,但思路大致是这样...
发表于:2007-03-13 12:57:318楼 得分:0
换个例子,将所有radiobutton的text设置成test..

private   void   button1_click(object   sender,   eventargs   e)
                {
                        foreach   (control   ctl   in   this.controls)
                        {
                                if   (ctl   is   radiobutton)
                                {
                                        //设置checked属性为true
                                        ((radiobutton)ctl).text   =   "test ";
                                }
                        }
                }
发表于:2007-03-13 15:45:129楼 得分:0
谢谢各位^-^

liujia_0421(snowlover)

foreach的范围一定要是this.constrols吗?那范围宽了,又要判断。

有没有this.buttons那样的集合,仅仅表示所有按钮的集合。
发表于:2007-03-13 16:52:3510楼 得分:0
to:有没有this.buttons那样的集合,仅仅表示所有按钮的集合。

似乎没有..

没有关系,判断还是很快的...
发表于:2007-03-13 20:45:3511楼 得分:0
再顶一下~
发表于:2007-03-13 22:29:4412楼 得分:3
英文程序里radiobutton就是单选的意思

  foreach   (control   tb   in   this.controls)
                        {
                                if   (tb.tostring().indexof( "radiobutton ")   >   0)
                                {
                                        tb.checked=true;
                                }
                        }

以前看过这样的一段,是判断textbox的,应该也支持radiobutton,呵呵
不过radiobutton默认只有一个选中,开始时全部是设成checked=false比较好,避免错误
发表于:2007-03-14 14:49:4913楼 得分:0
不错的代码,呵呵
发表于:2007-03-14 16:29:5314楼 得分:0
谢谢各位!^_^


快速检索

最新资讯
热门点击