C#2005窗体设计的几个BUG
1
如果一个自定义控件的属性,是DLL中的一个枚举值,那么设定时没有问题,再次打开该窗体的设计器就会提示语法错误无法编辑。
2
如果把一个控件剪切掉再粘回来,所有事件都将丢失。造成如果我要改变一个控件的Container时,必须直接修改Designer文件。而且修改控件的Container应该直接提供才对,剪切本身就是一不得已的办法。
3
窗体上两个控件,一个设成Top停靠,另一个Fill停靠,有时会造成Fill的控件盖住Top的控件。必须手动修改Designer文件,交换在Form中添加它们的次序。
4
有时出现窗体上控件丢失的情况。不常见但遇过多次,就是窗体上所有控件看不见了。此时关掉设计器重新打开就没有问题,但如果此时做任何修改(窗体属性,添加控件等),窗体上原来的控件信息就永远的丢失了。
欢迎补充...
------解决方案--------------------up!
------解决方案--------------------本身设计器完成的功能是很复杂的,有错误很有可能,
不过你见过的这些问题其实基本上都可以避免,不是什么大的问题.对我来说都习惯了.
------解决方案--------------------只要生成的窗体没问题就好,不要太依赖窗体设计器。
------解决方案--------------------本身设计器完成的功能是很复杂的,有错误很有可能,
我也遇到过
------解决方案--------------------up
------解决方案--------------------最麻烦的就是控件总是拖不到指定容器内!!老要改代码才能正确归属!
------解决方案--------------------我的DataGridView控件, 明明排好了列的先后次序, 有时编译一下, 硬是把列的次序给打乱了.
------解决方案--------------------楼上的应该没有问题,将控件拖到指定容器的时候,容器会突显的
------解决方案--------------------有时候也会出现这种现象,就是程序本身所带的一些缺陷,虽然经过调试还是可以用,但总觉得有点遗憾.
------解决方案--------------------1
如果一个自定义控件的属性,是DLL中的一个枚举值,那么设定时没有问题,再次打开该窗体的设计器就会提示语法错误无法编辑。
因为控件代码不规范造成的,缺少自定义属性说明(C#上面的[......],VB.NET的 <.....> )不是设计器的问题而是自己代码没有按要求。设计时支持除了要求代码在运行时正常还要求用特性表示好设计时属性。
2
如果把一个控件剪切掉再粘回来,所有事件都将丢失。造成如果我要改变一个控件的Container时,必须直接修改Designer文件。而且修改控件的Container应该直接提供才对,剪切本身就是一不得已的办法。
剪切再贴回来,我个人觉得事件丢失很合理,如果事件不丢失那才是bug, 如果我压根就不需要这些事件呢? 有人需要有人不需要,不能说不照你的需要走就是bug,那如果照你说的剪切过去后事件保持,我要喊有bug了~~~~ 因为我已经把控件剪掉了,居然事件还在,没有自动帮我删除~~~~ 这不是bug么????
3和4倒感觉真的是bug
------解决方案--------------------第三个不是bug,是你设置问题
窗体上两个控件,一个设成Top停靠,另一个Fill停靠,有时会造成Fill的控件盖住Top的控件。必须手动修改Designer文件,交换在Form中添加它们的次序。
需改为,一个top,一个fill,然后把top设为底层,就可以了。
------解决方案--------------------第一点头痛啊
不过我知道的解决方法是:
枚举不要放到 class中,而要放到 class外,namespace 中
namespace myDemo
{
public enum Pos{}
public class
{
}
}
------解决方案--------------------遇到过
------解决方案--------------------如果窗体继承自自定义的窗体,打开窗体设计器时问题也很多
------解决方案--------------------UP
------解决方案--------------------当修改类文件后,在切换到类图设计界面时vs2005会突然崩溃,遇到过几次!
------解决方案--------------------感觉第二条不是BUG...
------解决方案--------------------曾經我有好幾個bug,想不明白的bug.在design設計好了,但是一切換到source,就不恢復以前的了。
如果用了ajax,button事件不知道為什麼突然不能執行,去掉scriptmanager就好了。