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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows窗体设计器会破坏表单布局相关的知识,希望对你有一定的参考价值。

今天早上我在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进行挂起的更改并恢复对文件的所有更改也会还原损坏。即使在设计师中,表格看起来也应如此。直到我关闭并重新打开它。

答案

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

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

另一答案

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


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

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

另一答案

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

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

但是,这只是一个想法。

另一答案

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

另一答案

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

以上是关于Windows窗体设计器会破坏表单布局的主要内容,如果未能解决你的问题,请参考以下文章

表单视图设计器无法在 Visual Studio 2019 中使用 c# .NET Core 3.1 [重复]

第二章构造布局良好的Windows程序

C# WinForm窗体设计器怎么显示网格

在 windows 窗体文本框中显示代码结果

在Access数据库中窗体有哪几种视图

3.1.3 QFormLayout表单布局(窗体布局)