Windows窗体设计器会破坏表单布局

问题描述 投票:3回答:5

今天早上我在Visual Studio Windows窗体设计器中偶然发现了一个奇怪的问题。我有一个表格,工作了大约一个月,现在没有变化。在应用程序中看起来像这样:

Screenshot of how the form should look like

(文字难以理解,因为我不完全确定这里的法律含义)。

现在从今天开始,显然(我认为我昨天在设计师中打开了表格而没有问题)它在设计师中看起来像这样:

Screenshot of how the form looks in the Windows Forms Designer

看看差异,每个控件(或几乎每个标签都没有受到影响,但可能与AutoSize有关)的宽度为311像素。在设计师搞砸之后,以下几行在整个文件中很常见:

this.panel1.Size = new System.Drawing.Size(311, 24);

无论价值来自哪里。此外,一个标签得到了有趣的文本"潐瑲⼠倠獯瑩潩㩮攀瑵慲ⱬ"(它的原始字节没有任何意义)。

当我没有在设计器中打开表单时,没有任何不好的事情发生,项目甚至在文件未受影响时构建,并且在运行程序时看起来很好。但是打开设计器会触发设计器生成的代码中的上述变化,并且这些变化在编译时(显然)仍然存在。

在一个同事的机器上这根本不会发生(但是他不能在没有崩溃VS的情况下打开数据集,所以这里的两个设置可能都有点奇怪......)。

我真的很想知道这里发生了什么。有任何想法吗?

ETA:一旦它继续调整大小,我就无法改变设计器中控件的大小。调整大小只会导致一些视觉瑕疵,就好像控件已调整大小但在检查时仍然是311 px宽度。

ETA 2:奇怪的是:打开设计器(导致腐败,到目前为止一直很好),然后使用AnkhSVN进行挂起的更改并恢复对文件的所有更改也会还原损坏。即使在设计师中,表格看起来也应如此。直到我关闭并重新打开它。

winforms visual-studio-2008 windows-forms-designer
5个回答
4
投票

我找到了罪魁祸首。我最近安装了RockScroll。虽然我无法直接将该行为链接到RockScroll,但我注意到某些表单的滚动条替换了它。并且该表单上的控件无理由地改变了大小。

卸载了RockScroll,它解决了这个问题。无论如何,感谢所有的输入。


1
投票

你有没有试过清理你的项目? (我担心它不会解决任何问题,但这是一个值得尝试的简单步骤)


另外,你可以清理Visual Studio缓存吗?在类似情况下,它为我工作了很多次。

以下是有关VS Cache地狱的一些链接:1 2。如果您找到关于此的其他有用信息,请随时编辑我的帖子。


0
投票

可以使用“make same width”工具在设计器中单击一下即可完成此操作。

根据我的经验,如果Visual在构建期间被冻结,那么在屏幕上的随机位置点击以测试VS是否完成当前任务是很常见的)

但是,这只是一个想法。


0
投票

也许你最近安装了另一种语言包(韩语也许)。


0
投票

你在表单的构造函数或OnPaint方法中进行一些手动布局或锚定吗?我曾经遇到类似的问题,因为我试图手动修改某些元素的位置,而设计者在渲染时传递了无效的ClientRectangle(或其他东西)。

© www.soinside.com 2019 - 2024. All rights reserved.