【问题标题】:Controls moving in vs2008 design mode on build控件在构建时以 vs2008 设计模式移动
【发布时间】:2012-04-04 07:46:08
【问题描述】:

我有一个 C#.NET winforms 项目,每当我构建项目时,一些控件都会在设计视图中移动。它只有一些控件(一个带有标签和 datagridview 的面板、一个按钮、一个链接按钮和一个标签)在每个构建中都向上移动。

有没有人以前见过这个或知道如何解决它?

【问题讨论】:

  • 您是否安装了任何加载项?您可以将表单复制到新的 C# 项目中并复制行为吗?
  • @SpectralGhost - 一些插件。 Autocode v4.0(已禁用)、Devar SQL COmplete(已禁用)、rockscroll(已禁用)、Smart Paster 2008(已启用)、TestDriven.Net 3.0 Personal(已禁用)、TestDriven.Net Reflector(已启用)。
  • 控件是标准的 WinForms 还是第 3 方?您可以在某处发布可重现的演示代码吗?
  • @Phil - 查看原始问题,我说明了控件是什么。
  • @Phil - 将控件复制到新表单中不会显示移动行为。

标签: winforms visual-studio visual-studio-2008


【解决方案1】:

我认为这是因为 AutoScaleDimensions。我的猜测是您的表单最初是在另一台机器上创建的。

每个MSDN

"AutoScaleDimensions 属性表示 DPI 或字体设置 控件被缩放到或设计的屏幕。 具体来说,在设计时,此属性将由 Windows 设置 表单设计器到您的监视器当前使用的值。然后, 当窗体在运行时加载时,如果 CurrentAutoScaleDimensions 属性不同于 AutoScaleDimensions, 将调用 PerformAutoScale 方法来执行缩放 control 及其所有子项。之后,AutoScaleDimensions 将 更新以反映新的缩放大小。”

我的猜测是,由于奇怪的原因,当您构建项目属性(可能是其他一些属性)时,会进行调整,但不会在设计时进行调整。 我想了几个可能的原因:

  • 您在多台显示器上工作和/或您的适配器有一些奇怪的东西。

  • 自动生成的设计器文件存在一些问题。也许吧
    以某种方式手动编辑。

为了解决问题,我建议做一些我会做的事情:

  • 如果可能,通过复制粘贴位从头开始重新创建表单 一个接一个。

  • 如果不使用一些合并工具并插入新表格 属性。

还有一个关于AutoScaleDimentions的有趣问题。

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 2011-03-06
    • 2022-10-15
    • 2016-11-21
    • 2014-01-17
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多