Visual Studio 2008 SP1(虽然IIRC,行为也出现在2005年)不断调整我使用的几个网格控件(准确地称为Janus.GridEx)。
我可以将它们恢复正常,保存并编译就好了。当它编译时,这两个控件将扩展为荒谬的值。
更多信息: 此问题与在控件上设置Anchor属性有关。如果我将Anchor属性设置为相反的两端(比如Left和Right),则在编译Designer文件时,它会将控件的宽度/高度设置为容器的宽度/高度。
似乎在Designer文件中,Anchor属性设置在Size属性之前。手动编辑(我知道,对我来说很遗憾)首先放置Size属性的文件没有帮助,因为当编译Designer文件时,它似乎也从头开始重写。
所以我想我真正的问题是如何让VS表单设计师尊重我的初始大小声明以及Anchor属性。
答案 0 :(得分:6)
我遇到了同样的问题。表单上的用户控件实例具有这些设置。 锚 - 没有 autosize - false dock - none
每次我进行构建等时,它仍然可怕地调整大小。
我发现在设计属性中的用户控件上,它将autoscalemode设置为font。我将其更改为无,并解决了问题。
答案 1 :(得分:2)
我通常通过在调用InitializeComponent()之后将“好”代码放在表单构造函数中来解决这种麻烦,因此它会覆盖自动设计器魔术可能导致的任何混乱。
答案 2 :(得分:1)
我目前正在做的是处理Resize事件并在两个必需控件上设置Size。考虑到Anchor属性的预期效果,我觉得这有点像kludge。
答案 3 :(得分:0)
通常当我遇到这个问题时,我最终使用控件上的Dock和Padding属性的面板和标签(空白文本)来获得相同的视觉效果。这对你的表格是否实用将取决于它的布局。
不是最好的解决方案,因为所有额外的控制,但它完成了工作。
答案 4 :(得分:0)
也许我误解了这个问题,但我认为你所寻找的是Locked属性:http://msdn.microsoft.com/en-us/library/80xxxf69.aspx