你对C#语言和这个开发环境的理解还过于肤浅,Java、C#这两种语言在Eclipse和VS中起到的作用就是面向对象开发,你可以灵活定义控件,系统所提供的只是些基础的控件,方便你组合运用,我们做个像样的软件都不会去单单拖放几个控件了事,因为考虑开发环境的效率,开发环境制作者不会把框架和成型控件全部嵌套在开发环境里,这样累人累己,Eclipse走了很长一段这样的路,一打开就升级组件框架啊,下载半天网络连接异常,烦都烦死了。VS就改变了很多了,他不会去自动升级啥玩意。用法也和Java的AddControl、GetControl应用一样。在一个Winform或者WebForm、UserControl里面我们把ActiveTrivabe中成员都叫Control,控件都是Control类型,控件自身也可以作为容器,有Control.Add()函数接受添加或Control.ReMove()等,无论是控件还是容器,都有自己的Type,通过名称能反射自己的Type,通过Type能实例化自己的类型。也就是你知道名字能得到控件实例,你知道控件实例也能查找名称,你知道类型也能查找,知道命名控件也可以遍历他。groupBox1.Controls[i]就是用控件id去找控件。我们习惯这样表示用变量名宣召的控件:
控件Type 实例=(控件Type)this.容器.子容器.Controls[控件ID];
或者:
控件Type 实例=(控件Type)this.容器.子容器.Controls[控件名称];
反射我暂时就不介绍了,怕你一下子理解不了
foreach (Control c in groupBox1.Controls)//遍历groupBox1中的所有空间
{
if (c is RadioButton)//判断该控件是不是RadioButton
{
RadioButton r = (RadioButton)c;//做转化
bool rbState=r.Checked;//得到Checked状态
}
}
或者
for (int i = 0; i < groupBox1.Controls.Count; i++)
{
if (groupBox1.Controls[i] is RadioButton)
{
RadioButton r = (RadioButton)groupBox1.Controls[i];//做转化
bool rbState = r.Checked;//得到Checked状态
}
}
groupBox1就像一个容器,groupBox1.Controls通常用来为groupBox1添加控件、移除控件、清空所有控件等
groupbox.controls(0).是一个集合,可以对其中所有的控件进行处理。如果需要得到radiobox的值可以用
groupbox1.controls(0).checked=true
groupbox1.controls(1).checked=true
groupbox1.controls(2).checked=true
groupbox1.controls(3).checked=false
groupbox1.controls(4).checked=false
groupbox1.controls(5).checked=false
学习软件开发就到五月花学校,推荐就业