VC#中如何判断一个控件是不是容器? 比如我有个Control类实例,当它分别指向各种控件时,我如何判断指向的控件是否容器呢?简单说容器控件和非容器控件有没有什么有区别的属性在Control这层上体现出来呢?除了根据GetType来区分控件具体是哪种控件这种方法以外...谢谢大家~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是容器,它需要实现IContainer 接口。用这个做判断依据。 Control.Controls??其始好象C#应该说很多类都是容器的。只是用处不同而已 foreach(Control ctrl in this.Controls) if(ctrl as IContainer != null) MessageBox.Show("true"); else MessageBox.Show("false"); zhongwanli:我发现所有Control的Container接口都是存在的怎么判断呢?UPCC:Controls也是所有Control都存在的,只是是否为空而已~~但不能以此判断哦,因为容器控件上面也可以不放其他控件嘛~~752:发现ctrl as IContainer全部都!=null... 楼主是从哪里来引出“容器”的概念?如果是指vs开发环境上的工具栏选项卡,那么你可以随便把button拖进“容器”选项卡,并且保持这样使用,也就是说此“容器”其实是用户自己理解和归类。控件的Controls确实经常用于放子控件,但是所有控件包括button也有它。因此可以说所有Control其实都是容器,包括button、textbox,只是这些可能并不使用这个特性。而说IContainer接口,我不知道出自何处,反正反而Panel、GroupBox都不支持IContainer。Panel、GroupBox等在设计器上的表现(可以直接放入/拖入其它控件)取决于其Designer。你似乎可以查找控件的 DesignerAttribute 然后再判断其是否具有 ParentControlDesigner。不过可以在 IDE 上放入其它控件的,并不一定要有这个接口,你完全可以自己从头定义一个自己的Designer。 厉害非常佩服sp1234感谢sp1234的关心,我想我所指的容器概念,就是你指的最后一种概念,简单说是在标准使用过程中可以充当其他控件的Parent的Control(这里说“标准使用”是强调是按照WINDOWS使用风格和习惯的,因为我也知道,就是想要把Button当作容器,硬要往里面放入其他控件都是可以的)。比如Panel,GroupBox,TabPage,Form,都是我指的容器概念,谢谢! 如果控件只是相对于控件来讲是否是容器的话,那控件就那几种了,你判断一下是不是那几种控件就行了。(就是在部件那里的容器项里面的控件)控件都是容器,因为textbox能显示text,那么textbox可以是显示文字的容器,你认为呢? 啊~~我指的容器是可以放入其他Control那些哦~~Text是TextBox的属性,也不能这么理解为TextBox能“装”文字就是容器嘛~~我以为说“容器”大家肯定能明白我意思,现在才知道原来容器的理解还是见人见志的,555 在winform里把所有界面都做成一个自定义控件,textBox不能用鼠标选择了,内详 请求高手支招!!!谢谢 在代码中加一个自主选择文件的功能 p2p包传输效率问题,高手进来帮帮忙 关于c#进度条显示问题 vs2005 winform在不同的电脑里显示出来控件大小不一致问题 关于list<>的问题 提一个关于SQL Server 2005的CLR的问题,请了解的人帮帮我... 这个问题基本上很难! 求助:关于c程序对sqrt重载函数调用不明确的问题。 〓〓〓如何判断一个字符串中是否存在另外一个字符串? 关于窗体的背景图片?
if(ctrl as IContainer != null)
MessageBox.Show("true");
else
MessageBox.Show("false");
控件都是容器,因为textbox能显示text,那么textbox可以是显示文字的容器,你认为呢?