【问题标题】:How do I stop Visual Studio from enlarging controls every time I open a windows form?每次打开 Windows 窗体时,如何阻止 Visual Studio 放大控件?
【发布时间】:2012-06-25 02:30:14
【问题描述】:

我有一个 Windows 窗体文件,每次我在 Visual Studio 中打开它时,它都会增加设计器文件中控件的大小。如果我保存表单,在编辑器中关闭它,然后再次打开,那么控件都比以前大了一点。我可以看到控件的大小属性在设计器文件中都在增加。

谁能向我解释如何解决此问题?

【问题讨论】:

  • 听起来像在您的一个公共属性中调整大小作为副作用。您是否在任何地方明确设置/修改表单中的大小?这些用户控件在您的表单上吗?
  • 查看属性:AutoScaleMode、AutoSize、AutoSizeMode
  • 你有高 dpi 设置吗?

标签: c# winforms visual-studio-2010 visual-studio windows-forms-designer


【解决方案1】:

只需锁定控件,以免意外移动或调整它们的大小。

只需打开表单设计器,右键单击并从上下文菜单中选择“锁定控件”。

至于为什么 Visual Studio 会自动调整它们的大小,我只能猜测。

【讨论】:

    【解决方案2】:

    为了详细说明我的评论,当设计器加载/保存您的表单时,它将调用表单的公共属性和表单控件的 getter/setter。

    这意味着,如果您已覆盖表单的某个属性,并且访问/设置该属性具有调整控件大小的副作用,则该大小调整将反映在设计器中。然后,当您保存表单时,新大小将保留在设计器生成的代码中。每次重新打开表单时,都会发生这种调整。

    这也适用于在设计器生成的代码中设置的属性的事件处理程序。

    【讨论】:

    • 我发现了问题。我创建了一个继承自 SplitContainer 的自定义控件。 Visual Studio 自动为将 AutoScaleMode 属性设置为 Font 的自定义控件创建了一个设计器文件(为什么?我不知道)。这导致 SplitContainer 中所有内容的大小每次都增加。
    【解决方案3】:

    在 Windows 8 上使用 HD res 笔记本电脑与普通 1280 x 800 笔记本电脑运行时,我遇到了 Visual Studio 问题

    高清笔记本电脑全新安装的 Windows 默认设置是将 Windows 程序中的字体大小增加 25%

    查看屏幕分辨率 -> 放大或缩小文本或其他项目 -> 选择“让我为所有显示器选择一个缩放级别”以查看设置。就我而言,是 125%。

    Visual Studio 似乎根据上面的设置设置了表单或控件的 AutoScaleMode 设置。

    在表单设计器中: 在低分辨率笔记本电脑上 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

    高分辨率 this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 16F);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      相关资源
      最近更新 更多