Not*_*ure 18 c# user-controls visual-studio-2008 windows-forms-designer winforms
我有一个有点复杂的UserControl,Visual Studio 2008在使用它时给了我一个相当无害的烦恼.每次我使用Designer打开控件时,它都会决定立即更改设计器设置的一些无害值 - 即Size属性的初始化.如果我保存这些更改,关闭并重新打开,它几乎总是最终决定我的控件的另一个组件需要更改初始大小,无限制.幸运的是,这些变化是无害的,因为我在任何地方都使用自动调整大小,但这对于使用来说非常烦人.我不知道从何处开始弄清楚出了什么问题,我现在唯一想到的是Designer每次打开控件时都会将自动调整大小的结果分配回初始大小字段.关于原因/修复的任何想法?
编辑:此外,我正在使用应用程序设置来保存应用程序运行中某些可调整大小的子组件的大小,但我真的希望Designer足够聪明,以了解它应该只使用默认值.
Mat*_*ano 10
也许它可以帮助:
我注意到如果你插入一个自定义UserControl,FormDesigner(没有WPF,没有Web等)有一个奇怪的行为.
其他控件(GroupBox,EditBox,ComboBox)大小随机更改(对我来说,宽度发生).
选择调整大小的控件似乎是随机的,但是在重新启动vs2010时它始终是相同的.如果删除并重新插入,设计者会选择一个不同的控件来随机调整大小...
我将UserControl的属性AutoScaleMode从"Font"更改为"Inherit",并且它没有再次发生.
你没错,设计师经常尝试为属性添加默认值.
在属性声明的顶部添加:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
Run Code Online (Sandbox Code Playgroud)
这将告诉设计师忽略这个属性.