【问题标题】:How to stop Visual Studio from moving and/or resizing controls when opening a project?打开项目时如何阻止 Visual Studio 移动和/或调整控件大小?
【发布时间】:2011-03-16 01:51:15
【问题描述】:

我有一个在 Visual Studio 中存在问题的项目。主窗体有一个带有四个标签页的 TabControl,在最初的开发过程中,每次打开项目时,第三个标签页的全部内容都会下移。 (如果你几天不看那个页面,那真的很糟糕,下次你运行程序时,你必须向下滚动,越过所有在进入任何内容之前积累的空白区域。)通过选择所有内容并将其拖回顶部,相对容易解决。

由于项目进入维护/增强模式,第三个标签页没有任何问题,但第四个标签页上的几个控件正在调整大小(宽度略有增加)或左移(a X 位置大幅下降)。同样,每次打开项目时,这些相同的控件都会受到影响,因此如果您不每次都修复它们,它们将继续远离正确的设置。

问题描述很像this other question;一个显着的区别是设计器源文件没有更改,即我可以在单独的文本编辑器中打开设计器源文件并查看所有受影响控件的位置和位置的正确值,同时我有在 Visual Studio 中打开项目并在“属性”窗口中查看不正确的值。 (在打开项目后执行“保存”或“全部保存”不会影响设计器源文件,但更改表单上的任何内容然后保存它会使源文件与 Visual Studio 中的错误值匹配。)

关于 Visual Studio 为何不正确显示表单的任何想法?我真的很想避免每天花费额外的时间来修复它。而且我并不热衷于向构造函数添加代码以重新设置这些属性,正如其他地方所建议的那样(违反 SPOT/DRY 规则,你知道——充满危险)。

【问题讨论】:

  • 嗯,首先,听起来您迫切需要一个修订控制系统。如果您每次签到时都查看差异,您不会好几天都没有注意到变化。
  • 我们正在使用 Subversion;监视设计器生成文件中的更改的问题是,每次更改表单上的任何内容时都会重新生成文件,并且代码最终会出现在不同的位置。因此,从一个版本到下一个版本的差异包括大量的删除和添加,即使在没有改变的东西上也是如此,因为设计者以不同的顺序写出代码。这使得差异对于查找特定属性的更改毫无用处。

标签: visual-studio winforms


【解决方案1】:

您可以比较问题表单的 Designer.vb 文件从一个版本到下一个版本。 (单击在解决方案资源管理器中显示所有文件)。这应该可以告诉您正在更改的内容,也许您可​​以找到解决方法。

我遇到过类似的问题,通过卸载并重新安装 Visual Studio 解决了。

【讨论】:

    【解决方案2】:

    我终于找到了解决这个问题的方法。当我在设计器中将受影响窗体的最小尺寸属性设置为 0,0 以外的值(例如窗体的当前大小)时,某些控件会在我下次打开窗体时重新定位。将最小尺寸设置回 0,0 即可解决此问题。受影响的控件要么没有 Anchor 设置,要么将 Anchor 设置为底部。

    所以看起来锚底部和非零最小尺寸的组合是导致这种不需要的运动发生的原因。

    【讨论】:

      猜你喜欢
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多