visual studio 2005设计师移动控件和调整表格

问题描述 投票:18回答:10

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

c# visual-studio designer
10个回答
10
投票

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

以下是帖子:


-2
投票

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

这个表单有很多控件,不应该在较小的显示器上缩小,所以它被设置为自动滚动,设计器中的表单本身比显示的最小尺寸(历史上......)小。我只是将尺寸设置为最小尺寸,这样设计师就不会出现滚动条,并且锚点按预期工作而不会搞砸了帖子。

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


7
投票

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

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


4
投票

我找到了一个解决方法。

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


2
投票

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

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

至少适用于Visual Studio 2013和2015。


1
投票

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

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

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

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

0
投票

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


0
投票

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

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

删除移动的控件并将它们添加回表单解决了我的问题,正如ptutt在这里所建议的那样:Visual Studio designer moving controls and adding grid columns when form is opened

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


0
投票

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.