首页新闻找找看学习计划

winform中自定义容器控件,如何控制该容器中只能加入一些特定的控件类型?

0
悬赏园豆:50 [已解决问题] 解决于 2013-05-24 18:10
  • 如题,比如我定义了一个容器控件,将该容器拉到Form中,这时候,我只能从工具箱中拉入text输入框或combo下拉框,其他类型的控件都不允许拉入到其中?这个如何控制?
zsm605的主页 zsm605 | 初学一级 | 园豆:157
提问于:2013-05-21 15:37
< >
分享
最佳答案
0

1楼、2楼的方法确实不可行

能力有限,没有找到非常好的办法。

不太好的方式是ControlAdded事件,提醒不能放入某种类型空间。在OnCreateControl事件中,把某种控件remove。

这样的效果是页面拖放和编译都没达到你要的效果,执行的时候可以。

收获园豆:50
JustDotNet | 菜鸟二级 |园豆:229 | 2013-05-22 12:57

我就想设计的时候有这个效果哎,

求高手解答~~

zsm605 | 园豆:157 (初学一级) | 2013-05-22 15:56

@zsm605: 

我又尝试了下,在OnControlAdded事件中抛出异常,就能实现了。


        protected override void OnControlAdded(ControlEventArgs e)
        {

            if (e.Control is TextBox)
            {
                throw new Exception("AA");
            }
            base.OnControlAdded(e);
        }

JustDotNet | 园豆:229 (菜鸟二级) | 2013-05-24 09:43

@JustDotNet: 谢谢,基本能满足

zsm605 | 园豆:157 (初学一级) | 2013-05-24 18:10
其他回答(2)
0

用ControlAdded事件处理 

TiestoRay | 园豆:687 (小虾三级) | 2013-05-21 16:21

ControlAdded这个事件只能知道当前加入的控件时哪个,不能进行取消啊?

支持(0) 反对(0) zsm605 | 园豆:157 (初学一级) | 2013-05-21 17:05
0

应该是在拖拽事件里写代码不响应拖拽吧。

数据酷软件 | 园豆:371 (菜鸟二级) | 2013-05-21 18:10

试过了,没什么作用

支持(0) 反对(0) zsm605 | 园豆:157 (初学一级) | 2013-05-22 08:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册