Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VisualStudio2005设计器移动控件并调整窗体大小_C#_Visual Studio_Designer - Fatal编程技术网

C# VisualStudio2005设计器移动控件并调整窗体大小

C# VisualStudio2005设计器移动控件并调整窗体大小,c#,visual-studio,designer,C#,Visual Studio,Designer,当我在visual studio 2005(c#)中打开窗体时,设计器会自动调整窗体的大小,并移动/调整控件的大小,而无需触摸设计器。源文件已更改,当我关闭设计器时,系统会要求我保存*.cs文件。 我试图研究VisualStudio选项,但没有成功。 有什么想法吗? VisualStudio设置还是什么? 谢谢 塔尔这是一个你应该生活在一起的人。即使在VS2008中,这样的事情也时常发生。它主要取决于表单内容(控件、位置等),在VS中没有禁用此类行为的选项 当您在designer中打开表单时,v

当我在visual studio 2005(c#)中打开窗体时,设计器会自动调整窗体的大小,并移动/调整控件的大小,而无需触摸设计器。源文件已更改,当我关闭设计器时,系统会要求我保存*.cs文件。 我试图研究VisualStudio选项,但没有成功。 有什么想法吗? VisualStudio设置还是什么? 谢谢
塔尔

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

当您在designer中打开表单时,vs运行时将从代码隐藏中重建视觉外观。有时它会在这一刻做出改变。另外,当您只是向表单添加一个控件时,设计器会完全重建代码隐藏和资源文件。这是众所周知的问题,微软似乎不会解决它,因为他们朝着WPF的方向前进

因此,有几点可以简化您的生活:

  • 移动到VS2008,设计器更加一致,但仍然在.designer.cs文件中洗牌控件
  • 将您的代码放在一个源存储库中,这样,如果您意外地保存了这样的表单,您就可以从repositary恢复它
  • 我找到了一份工作

    不确定后面会发生什么,但我更改了显示属性。而且效果很好。 以下是顺序:显示属性->设置选项卡->前进。
    在advance对话框中,我将“DPI设置”从大(120dpi)更改为正常(96dpi)

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

    以下是帖子:


      • 这是由于
        AutoScaleMode
        -属性造成的。您的表单可能使用了与Windows显示设置不同的DPI或字体设置
        AutoScaleMode
        -属性有4个不同的可能值:
        Dpi
        Font
        Inherit
        None
        。在
        Dpi
        Font
        模式下,窗体和控件将根据windows显示设置自动调整大小


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

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

        在复杂选项卡控件中锚定顶部、左侧和右侧的控件也存在相同的问题。每次我打开窗体时,VisualStudioForms设计器都会增加所有嵌套控件的宽度

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


        至少适用于Visual Studio 2013和2015。

        我也有这个问题。每次我打开设计器时,每个带有锚定“right”的框都会向左移动大约20个像素。此外,每个锚定为“左”的框的底部在窗体外约200像素

        此窗体有许多控件,不应在较小的显示器上收缩,因此它被设置为autoscroll,窗体本身在设计器中小于显示的最小大小(历史上…)。我只是将大小设置为最小大小,这样就不会在设计器中出现滚动条,并且锚按预期工作,而不会扭曲位置


        我读了ryantm的答案中的第一篇帖子,这让我找到了解决方案。显然,它与.Net执行事件的顺序有关,例如设置表单的大小。

        我有一个简单的表单,上面几乎没有控件,当表单在VS2013设计器中打开时,底部的OK和Cancel就被上移了。在VS2015中观察到同样的行为

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

        移除已移动的控件并将其添加回表单解决了我的问题,正如ptutt所建议的:


        虽然我很欣赏ryantum的建议和使用停靠[与面板]的链接,正如上面罗兰博客文章中的链接所提到的,但对于一些如此琐碎的事情,我宁愿通过删除/重新添加来消除它。

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

        我在VS2015中遇到了这个问题。 我使用了带有控件的坞面板,这些控件在孩子们出生时意外移动。 默认情况下,控件将向左对齐,但您可以更改方向。
        我的按钮停止移动。

        谢谢仲裁人-嗯,迁移到2008与我的项目无关(此时涉及太多代码)。VS2005->2008迁移根本没有问题。这在vs2010中仍然是个问题是的,我在vs2010中有问题-但正如RyanTM所建议的,我的问题消失了,因为我用停靠交换了锚定…IDE设计器受屏幕DPI的影响,这太可怕了。听到这个消息很难过(在Windows带来的诸多恐怖事件中,“DPI设置”是最糟糕的一个。与我所见过的几乎所有其他设置相比,此设置在更多应用程序中造成的问题都要多。我表单中的控件一直受到