您的位置:首页 > 编程语言 > C#

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

2011-06-22 21:59 603 查看
网上的东西真是害死人,大部分都是不负责的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也都有.......

解决办法就是:

新添加控件后锁定控件,然后在属性窗口改位置,这样不会消失
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐