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

visualstudio2005设计器移动控件并调整窗体大小

  •  19
  • tal  · 技术社区  · 16 年前

    当我在visualstudio2005(c#)中打开一个窗体时,设计器会自动调整窗体的大小,并移动/调整控件的大小,而无需触摸设计器。源文件已更改,当我关闭设计器时,系统会要求我保存*.cs文件。 有什么想法吗? 视觉工作室设置还是什么?

    10 回复  |  直到 16 年前
        1
  •  10
  •   ryantm    15 年前

    我今天大部分时间都在研究这个问题,发现了一些有趣的事情:问题的主要来源似乎是依赖于锚定。如果我使用锚定来定位我的控件,而不是锚定,我的问题似乎就消失了。我找到了2003年的几篇博客文章(!),详细介绍了如何使用停靠而不是锚定,并解释了锚定如何破坏Windows窗体设计器。这个问题可能已经超过7年了!

    以下是帖子:

        2
  •  8
  •   Spontifixus    13 年前

    这是由于 AutoScaleMode Dpi , Font , Inherit None .In DPI 模式下,您的窗体和控件将根据windows显示设置自动调整大小。

    所以,设置 自动缩放模式 在您的所有表单和控件中,它们将不再自动调整大小。尝试设计表单,以便在每个控件中留出足够的空间,这样即使文本大小设置为125%,文本也能容纳。

        3
  •  4
  •   tal    16 年前

    我找到了一份工作。

    不知道后面发生了什么,但我更改了显示属性。而且它工作得很好。

        4
  •  2
  •   ZuBsPaCe    9 年前

    我找到了一个简单的解决方法,这要归功于 this post 。我只是在每个选项卡中添加了一个面板,并将其停靠属性设置为填充。选项卡中的所有现有控件都移动到了这些面板内。即使控件锚定在顶部、左侧和右侧,这也有效。

    至少适用于Visual Studio 2013和2015。

        5
  •  1
  •   arbiter    16 年前

    1. 迁移到VS2008后,设计器更加一致,但仍然在.designer.cs文件中洗牌控件
    2. 将您的代码放在其中一个源代码存储库中,这样如果您意外保存了这样的表单,您可以从存储库中还原它。
        6
  •  0
  •   Kevin Gale    11 年前

    将表单的最小和最大大小设置为当前大小对我来说是一个很好的解决方案。这阻止了VS调整其大小。

        7
  •  0
  •   Community Mohan Dere    8 年前

    DPI在这里接受的答案并没有解决我的问题,也没有解决表格/填充/边距的大小问题。

    Visual Studio designer moving controls and adding grid columns when form is opened

    https://weblogs.asp.net/rweigelt/28984 ,对于如此琐碎的事情,我宁愿通过删除/重新添加来消除它。

        8
  •  0
  •   Joe Kar    9 年前

        9
  •  -1
  •   Nico    8 年前

    我在VS 2015上遇到了这个问题。 我的按钮停止了移动。

        10
  •  -2
  •   Michael Müller    9 年前

    我也有这个问题。每次我打开设计器,每个锚定为“右”的盒子都会向左移动约20像素。此外,每个带有锚点“left”的框的底部都在表单外约200像素处。

    此表单有许多控件,不应在较小的显示器上收缩,因此它被设置为自动滚动,表单本身在设计器中比显示的最小尺寸小(历史上…)。我只是将大小设置为最小大小,这样设计器中就不会出现滚动条,锚点也能按预期工作,而不会弄乱位置。

    我阅读了ryantm回答的第一篇帖子,这让我找到了解决方案。显然,这与订单有关。Net执行诸如设置窗体大小之类的事件。