Code Bye

获取容器中多个容器的控件集合

窗中有个panel1容器,里面又包含多容器,如groupbox1、groupbox2,本人想获取panel1中全部groupbox容器里面的全部控件?
应该怎么样操作?
怎么样将字符串“Unchecked”,“Checked”,“ Indeterminate”转换成checkbox控件CheckState状态?
解决方案

5

他们都是属于一个类的。好像是control。这个类有一个属性好像是controls吧。里面存放了他包含的控件集合。然后取到这个集合,然后挨个判断类型,就能获得了。
思路应该是这样。代码就不写了。
字符串转Enum类型。这个用Enum.Parse方法就可以了。传入Enum类型和字符串就可以了。例如
Enum.Parse(typeof(Enum<Type>),str);

手打的,可能语法有问题。大体就是这。

30

引用:

你第一个理论本人是懂了,实际操作 control c in panel1只能获得groupbox1、groupbox2这两个控件,不能获得groupbox里面的控件
第二个问题报错错误 2 无法将类型“object”隐式转换为“System.Windows.Forms.CheckState”。存在一个显式转换(能否缺少强制转换?)

checkBox1.CheckState = (CheckState)Enum.Parse(typeof(CheckState), "Unchecked");

5

//1
panel.Controls.OfType<GroupBox>().SelectMany(g => g.Controls.Cast<Control>());
//2
Enum.Parse(typeof(CheckState), str);

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明获取容器中多个容器的控件集合