Microsoft窗体停靠在左上角。C#

Microsoft窗体停靠在左上角。C#,c#,forms,visual-studio,winforms,panel,C#,Forms,Visual Studio,Winforms,Panel,我对编程相当陌生,这是我的第一个表单程序 我试图在面板中放置按钮,使其按字母顺序自动排序 起初,我尝试使用FlowLayoutPanel,它显示大小和位置正确的按钮,但不按字母顺序排序: 我在尝试将其自动缩放到屏幕大小时也遇到了一些问题 FlowLayoutPanel失败后,我尝试了一个普通的面板。它修复了我以前的所有问题,但在停靠时会拉伸按钮: 以下是代码(如果重要): Button modButton=新建按钮(); modButton.Location=新系统图点(3,3); modB

我对编程相当陌生,这是我的第一个表单程序

我试图在面板中放置按钮,使其按字母顺序自动排序

起初,我尝试使用FlowLayoutPanel,它显示大小和位置正确的按钮,但不按字母顺序排序:

我在尝试将其自动缩放到屏幕大小时也遇到了一些问题

FlowLayoutPanel失败后,我尝试了一个普通的面板。它修复了我以前的所有问题,但在停靠时会拉伸按钮:

以下是代码(如果重要):

Button modButton=新建按钮();
modButton.Location=新系统图点(3,3);
modButton.Name=skinName;
modButton.Size=新系统图尺寸(200200);
modButton.TabIndex=0;
modButton.Text=skinName;
modButton.TextAlign=System.Drawing.ContentAlignment.BottomCenter;
modButton.UseVisualStyleBackColor=true;
modButton.BackgroundImageLayout=ImageLayout.Zoom;
modButton.Dock=System.Windows.Forms.DockStyle.Left;
modButton.Click+=newsystem.EventHandler(this.modButton\u Click);
modButton.TextImageRelation=System.Windows.Forms.TextImageRelation.ImageOverText;
这个.panel2.Controls.Add(modButton);
modList.Add(skinName);
小组成员:

this.panel2.AutoScroll=true;
this.panel2.AutoSize=true;
this.panel2.BackColor=System.Drawing.SystemColors.Control;
this.panel2.Dock=System.Windows.Forms.DockStyle.Fill;
this.panel2.Location=新系统图纸点(0,0);
this.panel2.Name=“panel2”;
this.panel2.Size=新系统图纸尺寸(636450);
this.panel2.TabIndex=7;

从什么时候开始控件自动按字母顺序排序?基于什么,文本还是名称?这就是你要做的,编码它。您显示的两个图像仅建议不同的锚定或停靠模式,或者只是容器控件的默认行为。不清楚你在问什么。您必须了解锚定和停靠在不同容器中的工作方式,以及每种容器的工作方式。每一种都有自己的特点。它需要一些测试(实际上很多)。当我第一次测试普通面板而不是FlowLayoutPanel时,右侧的所有按钮都按字母顺序排序。我曾经在“全部应用”上方有另一个按钮,称为“选择应用”。一旦我把它们放在一个面板中,并将它们停靠在底部,Apply All立即位于另一个面板的上方,而“Import mod folder”(导入mod文件夹),即最上面的文件夹,成为底部的文件夹。不管我把它们按什么顺序排列,它们似乎总是按字母顺序排列,所以我认为这是字母顺序。我想你的问题可能与按钮的Z顺序有关。使用Designer上的“向前移动”和“向后移动”功能进行游戏如果要使按钮“停靠到左上角”,请尝试设置其
Anchor
属性
button.Anchor=AnchorStyles.top | AnchorStyles.left
(这也是锚点的默认值),而不是
Dock
。此外,什么是“字母顺序”?“控制顺序”在您提供的屏幕截图中似乎是相同的。