温馨提示:本文翻译自stackoverflow.com,查看原文请点击:.net - WinForms, C# Diffenrent Control Locations in RunningMode than Editor
.net c# visual-studio winforms

.net - WinForms,RunningMode中的C#区别控件位置比编辑器

发布于 2020-04-04 00:48:02

我已经复制了一个现有的(并且正在工作的)表单,替换了Image并在代码中做了一些配置(但实际上不是Control-Location-Related)。编辑器中的“我的表单”看起来像这样(应该如何)

编辑: 编辑

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

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

看起来是这样的:

运行程序

运行程序

我也尝试删除图像,但是控件停留在错误的位置。Control.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;

Panel02的定义

        // 
        // 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;

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

查看更多

提问者
V.Kirsch
被浏览
81
V.Kirsch 2020-01-24 20:41

解决了

我的控件似乎确实有问题,但与面板没有真正联系。再次感谢所有发表评论的人。

我删除了每个控件,并一一替换(并在每个控件后重建程序)。之后,一切都在原本应有的状态。

(滚动面板真的很糟糕,我明白了:))