c# 窗体中画上去的控件莫明其妙丢失
我昨刚在VS2003 C#下画好一个窗体,里面放了很多控件,但今天打开电脑,窗体上的很多
控件都没了.我的同事也碰到过这种情况.
不知哪位高手碰到过这种问题,是不是C#的BUG
问题点数:100、回复次数:20Top
1 楼cncca(来个可乐 9_9)回复于 2005-01-22 16:15:57 得分 0
没碰到过!!Top
2 楼Johnyin(境由心生...)回复于 2005-01-22 16:23:54 得分 0
检查:
1.是否保存。
2.是否为继承窗体。
3.查看窗体代码——设计器产生的代码,看里面是否有产生控件的语句。Top
3 楼mars131(自由自在131)回复于 2005-01-22 16:35:52 得分 0
丢控件是常有的事情,所以备份很重要。首先要看看在代码里面有关丢失控件的代码是不是还在,如果在那其实就是界面上没有显示出来,最好是把文件从工程中排除,然后在包含近来。如果连代码都没有了,就再拉进去把:)Top
4 楼FJGoodGood(_FJ_强中强)回复于 2005-01-22 16:37:04 得分 20
碰到过 N 次!!!!!!
其原因大概是这样的:
界面里用了自己写的 UserControl(在同一个方案的另一个工程里),半中间修改了 UserControl 的代码,编译失败,没有管它;一段时间后,重新打开方案,就会发现这些界面里的UseControl控件全都没了。。。
解决方法:
第一:出现这种情况,千万别保存(这是.Net的BUG),关闭那些丢失了控件的页面(不保存)
第二:立即把 UserControl 库重新编译,如果有错,赶紧改正,直到编译成功;
第三:关闭方案,再重新打开方案,进入那些页面一看,好了~~~Top
5 楼cdo(Everything has a favourable turn)回复于 2005-01-22 16:40:09 得分 0
遇到过同样的情况,只是在设计的时候看不到,代码还是有的,你编译出来的也有。具体原因我也不知道Top
6 楼broadury(marvel)回复于 2005-01-22 17:03:34 得分 0
有这种情况,应该是微软IDE的解析代码的bugTop
7 楼kdg2000(小刚)回复于 2005-01-22 20:53:19 得分 0
>>3.查看窗体代码——设计器产生的代码,看里面是否有产生控件的语句。Top
8 楼Programer_Zjw(阿伟)回复于 2005-01-22 22:35:05 得分 0
注意以下问题:
1.是不是没有保存。
2.是否有产生控件的代码。Top
9 楼FlashElf(銘龘鶽)回复于 2005-01-22 23:55:43 得分 20
这种问题多半是使用一些 第3方控件
或自己写的控件引起的。
这种问题 设计器里没有东西 但 代码不丢
----------------------------------
如果是上面的 重新编译 一下 控件在打开工程
如果是连代吗都没了 那就没办法了。Top
10 楼ghghzzzz(ghghzzzz)回复于 2005-01-22 23:59:18 得分 20
这种问题多半是使用一些 第3方控件或自己写的控件引起的。这种问题 设计器里没有东西 但 代码不丢如果是上面的重新编译一下控件在打开工程
Top
11 楼pray1997(pray1997)回复于 2005-01-23 00:00:08 得分 0
ide bugTop
12 楼egxsun(egxsun)回复于 2005-01-23 13:09:32 得分 0
没有遇到过Top
13 楼leo2003(【健者天行】谁伴我闯荡)回复于 2005-01-23 13:28:46 得分 0
偶也常遇到,
一般是继承窗体、自定义控件
Top
14 楼cnming(cnming)回复于 2005-01-23 13:33:53 得分 0
InitializeComponent函数里头有错误语句,导致退出,就没有加载所画的控件了
解决方法:在你不熟悉的情况下,尽量不要去手工修改里头的代码Top
15 楼CSTerry(Terry)回复于 2005-01-23 14:34:10 得分 0
我遇到过一次……也是自定义控件Top
16 楼timiil(小华)回复于 2005-01-23 16:16:22 得分 40
确实是InitializeComponent函数里边的问题,但我用过Infragstics的控件集和DevExpress的控件集,根本没有惊动InitializeComponent他老人家,可还是会出现莫名其妙的控件丢失的!!!
这个问题一直相当的困扰。 多数情况是因为用了第三方或自己编写的控件时候会发生,而且Winform和Webfrom都会发生!
我的猜想这是VS IDE的一个Bug, 而罪魁祸首是CopyToLocal属性!!! 如我有一个Winform的工程,使用了大量的Winform 商业控件,设计的时候一直没什么问题,待我要发布的时候,当然大家都会把引用的商业控件设置CopyToLocal属性为True,然后以Release编译。。。
但当编译后关闭IDE,再重新打开IDE,就会“惊喜”地发现设计器窗体上东西都丢失了,只剩一个红色的大叉。。。
所以我现在的解决办法就是Release发布之前备份,编译后直接把这份代码删掉,恢复控件引用都是CopyToLocal=False的时候的代码版本继续开发。自从这样“备份-发布-恢复”之后,再没有遭遇“惊喜”了。
不知各位高人以为如何呢?
Top
17 楼dhzsir(dhzsir)回复于 2005-01-23 17:29:05 得分 0
看到这么多高手帮忙真是高兴.
各位高手我用的都是微软自带的标准控件.
我打开
查看窗体代码——设计器产生的代码,里面控件定义部分少掉很多.
而控件初始及定位语句也丢失了大部分.
Top
18 楼gyf19(秋天的云)回复于 2005-01-23 20:14:57 得分 0
没有遇到紧,解法的方法就是备份Top
19 楼tmp1804()回复于 2005-01-23 20:22:36 得分 0
把项目文件.sln等删除,再编译创建Top
20 楼dhzsir(dhzsir)回复于 2005-01-23 20:41:07 得分 0
是窗体中的控件定义代码都没了呀.晕.Top




