visual studio 2005设计师移动控件和调整窗体大小

当我在visual studio 2005(c#)中打开一个表单时,设计器会自动调整表单大小并移动/调整控件大小而不会触及设计器。 源文件已更改,当我关闭设计器时,我被要求保存* .cs文件。 我试图研究视觉工作室选项而没有任何成功。 有任何想法吗? 视觉工作室设置或什么? 谢谢,塔尔

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

以下是post:

这是由于AutoScaleMode -property。 您的表单可能设计为使用与Windows显示设置中不同的DPI或字体设置。 AutoScaleMode -property有4种不同的可能值: DpiFontInheritNone 。 在DpiFont模式下,您的表单和控件将根据Windows显示设置自动resize。

因此,在所有表单和控件中将AutoScaleMode -property设置为None ,它们将不再自动resize。 尝试设计表单以便在每个控件中留出足够的空间,以便即使文本大小设置为125%也能使文本适合。

我找到了一个解决方案。

不知道后面发生了什么,但我改变了我的显示属性。 它工作正常。 这是序列:display propertis-> settings tab-> advance。 在高级对话框中,我将“DPI设置”从大(120dpi)更改为正常(96 dpi)

在复杂的TabControls中,控件在顶部,左侧和右侧锚定时遇到了同样的问题。 视觉工作室表单设计者每次打开表单时都会增加所有嵌套控件的宽度。

由于这篇文章,我找到了一个简单的解决方法。 我只是在每个选项卡中添加了一个面板,并将其dock属性设置为fill。 选项卡中的所有现有控件都在这些面板中移动。 即使控件在顶部,左侧和右侧锚定,这也可以工作。

至少适用于Visual Studio 2013和2015。

这是你应该忍受的。 即使在VS2008中,这样的事情也时有发生。 它主要取决于表单内容(控件,位置等),并且VS中没有禁用此类行为的选项。

当您在设计器中打开表单时,vs运行时会从后面的代码重建视觉外观。 有时候它会在这一刻发生变化。 此外,当您只是将一个控件添加到表单时,设计人员可以完全重建代码隐藏和资源文件。 这是众所周知的问题,似乎MS不会修复它,因为它们在WPF方向上移动。

这几点可以简化你的生活:

  1. 转移到VS2008,设计师更加一致,但仍然在.designer.cs文件中随机控制
  2. 将代码放在其中一个源存储库中,因此如果您不小心保存了此类表单,则可以从存储库中将其还原。

将最小和最大尺寸设置forms设置为当前尺寸对我来说是一个很好的解决方法。 这阻止了VSresize。

我有一个简单的窗体,几乎没有控件,在VS2013设计器中打开窗体后,底部的OK和Cancel都会向上移动。 在VS2015中观察到相同的行为。

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

删除移动的控件并将它们添加回表单解决了我的问题,正如ptutt在此处所建议的那样: Visual Studio设计器在窗体打开时移动控件并添加网格列

虽然我很欣赏ryantum的建议和使用对接[与面板]的链接,正如上面的链接中提到的Roland的博客文章https://weblogs.asp.net/rweigelt/28984 ,有一些如此微不足道的东西,我宁愿只需删除/添加即可。

我发现从格式菜单锁定控件是一个简单而有效的解决方案。 VS2013

我在VS 2015中遇到了这个问题。我使用了停靠面板,控制器意外地移动了他们的孩子。 默认情况下,控件将对齐到左侧,但您可以更改方向。 我的按钮停止移动。

我也有这个问题。 每当我打开设计师时,每个带有“右”锚的盒子都会向左移动大约20个像素。 此外,每个具有锚“左”的框的底部在表格外约200像素。

此表单有许多控件,不应缩小在较小的显示器上,因此设置为自动滚动,设计器中的表单本身比显示的最小尺寸(历史记录……)小。 我只是将尺寸设置为最小尺寸,这样设计师就不会出现滚动条,并且锚点按预期工作而不会搞砸了post。

我从ryantm的回答中读到了第一篇文章,这使我得到了解决方案。 显然它与订单有关.Net执行诸如设置表单大小之类的事件。