代码之家  ›  专栏  ›  技术社区  ›  Joey

Windows窗体设计器破坏窗体布局

  •  3
  • Joey  · 技术社区  · 15 年前

    今天早上我在Visual Studio的Windows窗体设计器中遇到了一个奇怪的问题。我有一张表格,现在已经用了大约一个月了,没有改动。在应用程序中如下所示:

    Screenshot of how the form should look like http://hypftier.de/dump/form_should_look_like.png

    (文本无法阅读,因为我不完全确定此处的法律含义)。

    从今天开始,很明显(我想我昨天在设计师那里打开了表格,没有问题),设计师看起来是这样的:

    Screenshot of how the form looks in the Windows Forms Designer http://hypftier.de/dump/form_designer.png

    从diff来看,每个控件(或几乎每个“标签”)的宽度为311像素。在设计器处理文件后,以下行在整个文件中很常见:

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

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

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

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

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

    埃塔: 一旦设计器中的控件继续调整其大小,我就无法更改其大小。调整大小只会导致一些视觉效果,就像控件 已调整大小,但检查时仍为311像素宽。

    ETA 2: 奇怪的是:打开设计器(导致损坏,到目前为止还不错),然后使用ankhsvn进行挂起的更改,并将所有更改恢复为文件也会恢复损坏。窗体看起来甚至应该在设计器中。直到我关闭并重新打开它。

    5 回复  |  直到 15 年前
        1
  •  4
  •   Joey    15 年前

    我找到了罪犯。我最近安装了 RockScroll .虽然我不能直接将这种行为与RockScroll联系起来,但我注意到有些表单上画了滚动条替代物。 该窗体上的控件无原因地更改了大小。

    卸载了RockScroll,解决了问题。不管怎样,谢谢你的所有意见。

        2
  •  1
  •   Brann    15 年前

    你试过清理你的项目吗?(恐怕解决不了任何问题,但这是一个值得尝试的简单步骤)


    另外,您可以清理您的Visual Studio缓存吗?在类似的情况下,它为我工作了无数次。

    以下是有关vs缓存外壳的一些链接: 1 2 . 如果你找到其他有用的信息,请随意编辑我的文章。

        3
  •  0
  •   Brann    15 年前

    使用“使宽度相同”工具在设计器中单击一次就可以做到这一点。

    根据我的经验,如果在构建过程中冻结了视觉效果,则通常在屏幕上的任意位置单击以测试vs是否完成了当前任务)

    不过,这只是个主意。

        4
  •  0
  •   junmats    15 年前

    可能您最近安装了另一个语言包(可能是韩语)。

        5
  •  0
  •   vgru    15 年前

    您是在窗体的构造函数或onpaint方法中进行手动布局还是锚定?我曾经遇到过类似的问题,因为我试图手动修改一些元素的位置,而设计器在渲染时传递了一个无效的clientRectangle(或其他东西)。