WinForms、C#在运行模式下的控件位置与编辑器不同

WinForms、C#在运行模式下的控件位置与编辑器不同,c#,.net,visual-studio,winforms,C#,.net,Visual Studio,Winforms,我已经复制了一个现有的(和正在工作的)表单,替换了图像,并在代码中进行了一些配置(但没有真正控制位置相关)。 我在编辑器中的表单如下所示(应该如何) 编辑: 我有一个Panel01,其中包括每个控件。 Panel01内部是一个MenuStrip和Panel02。 面板02包括每个控件: -文本框 -复选框 -日期 -以及图形(以粉红色标记)998x1426像素 启动程序并打开窗体时,图片向下移动,某些控件也会这样做。但是,有些控件保留在我在编辑器中放置它们的位置 这就是它的样子: 运行程序

我已经复制了一个现有的(和正在工作的)表单,替换了图像,并在代码中进行了一些配置(但没有真正控制位置相关)。 我在编辑器中的表单如下所示(应该如何)

编辑:

我有一个Panel01,其中包括每个控件。 Panel01内部是一个MenuStrip和Panel02。 面板02包括每个控件: -文本框 -复选框 -日期 -以及图形(以粉红色标记)998x1426像素

启动程序并打开窗体时,图片向下移动,某些控件也会这样做。但是,有些控件保留在我在编辑器中放置它们的位置

这就是它的样子:

运行程序

我也尝试过删除图像,但控件停留在错误的位置。 控件.Location.Y在编辑器和运行中都是相等的

我如何改正我的错误?我到底犯了什么错? 我真的想让运行程序中的表单看起来像编辑器中的表单

我附上一些(希望)截图以及

如果有人能帮助我,我会非常感激(我已经疯了)

以下是一些更详细的信息:

Panel01的定义

        // 
        // Panel01
        // 
        this.Panel01.Controls.Add(this.menuStrip1);
        this.Panel01.Controls.Add(this.Panel02);
        this.Panel01.Location = new System.Drawing.Point(0, 0);
        this.Panel01.Name = "Panel01";
        this.Panel01.Size = new System.Drawing.Size(1019, 1066);
        this.Panel01.TabIndex = 1;
第2组的定义

        // 
        // Panel02
        // 
        this.Panel02.AllowDrop = true;
        this.Panel02.AutoScroll = true;
        this.Panel02.Controls.Add(this.Stempel01);
        this.Panel02.Controls.Add(this.Datum01);
        this.Panel02.Controls.Add(this.Picture1);
        this.Panel02.Location = new System.Drawing.Point(0, 25);
        this.Panel02.Margin = new System.Windows.Forms.Padding(4);
        this.Panel02.Name = "Panel02";
        this.Panel02.Size = new System.Drawing.Size(1016, 1036);
        this.Panel02.TabIndex = 0;

在这里,设计师添加了每个控件(比屏幕截图中显示的更多)。

已解决

我的控制似乎真的有问题,没有真正连接到面板。再次感谢所有发表评论的人

我删除了每个控件并逐个替换它们(并在每个控件之后重建程序)。在那之后,一切都在它应该在的地方


(滚动面板非常糟糕,我理解:)

解决了第二个问题

我还漏掉了一些同样导致不良行为的东西:


My FormLoad将ActiveControl设置为一个控件,该控件在加载过程中处于不可见状态(窗口)。加载后,我有一个函数可以调整所有可滚动面板的大小。如果我一直将ActiveControl设置为面板内的某个位置,则一切正常。

谢谢,我理解。我编辑了我的帖子。希望如此,现在更清楚了一些控件(位于顶部的控件)似乎属于Panel01而不是Panel02。将它们移回Panel02(全选,剪切,然后在Panel02内部单击并粘贴)您指的是菜单列表1,它必须位于Panel01中。然后我可以滚动整个窗口,而无需将menuStrip向外滚动。menuStrip应该是表单的子控件,您在灰色区域看到的控件属于Panel01或表单本身。吉米,你说得对,菜单1不应该在面板中。问题是,它必须位于一个面板中,才能为有相同问题的人同时移动所有内容(在我的程序中,每个表单都可以移动):要检查控件是否正确连接,可以使用“文档大纲”窗口(视图->其他窗口->文档大纲或在designer视图中按CTRL+ALT+T。它显示窗体的实际结构及其子项。如果按钮等单个控件不是面板的子项,您可能需要将它们拖放到右侧面板上。我不知道,谢谢!我会立即尝试此操作