C#中继承窗体会导致控件消失的问题解决

网上的东西真是害死人,大部分都是不负责的Ctrl+V来的

最近要做一个类似PPT的WINFORM程序,100多个页面,想到用基类来解决,不然会累到吐血的,自定义窗体/控件都很简单,可继承过来后的子窗体只要放一个控件上去,运行后控件就神秘消失了,但在属性窗口能看到,证实是存在的,GG之后发现这个问题还真是N多,解决方法就是:

1,据说不断打设计窗口N次

2.删除BIN中的vshost.exe文件

3.在Form.Designer.cs中 的窗体生成代码,应该默认是在 #region Windows 窗体设计器生成的代码 这部分的最后一节,加上如下代码:

    this.Controls.Add(this.xxxxxx);

xxxxxx为新添加的控件名

经过我N次的努力尝试,都不行!!

网上大多给的是第3种解决方法,可惜我这里不行,也许是版本问题吧,本人的环境为:XP+VS2005 SP2 TEAM 版

其实还要,加上这样一句:

 

this.Controls.SetChildIndex(this.xxxxxx, 0);

 

后来想了下,也许是因为继承的父窗口中有个Panel,而Panel控件在继承后默认却是置顶的,挡住了继承后窗体上的控件,所以导致在继承后的窗体会看不到,有帖子还说是由于自定义控件的BUG,把SetChildIndex设置后,我又放上个自定义控件,也正常了!


PS:刚发现如果修改了InitializeComponent中的代码,只要你不管拖动了子窗体中的哪个控件,那你刚刚改的控件就又变成不可见了,刚添加的代码又消失了......这个BUG真NB了,好像VS2008,VS2010也都有.......

解决办法就是:


新添加控件后锁定控件,然后在属性窗口改位置,这样不会消失

 

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值