为什么TableLayoutPanel把它的子控件以相反的顺序

本文关键字:顺序 控件 TableLayoutPanel 为什么 | 更新日期: 2023-09-27 17:50:38

这个问题不会发生在所有实例中,但这个代码块:

        this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
        | System.Windows.Forms.AnchorStyles.Left) 
        | System.Windows.Forms.AnchorStyles.Right)));
        this.tableLayoutPanel1.ColumnCount = 2;
        this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 60.99398F));
        this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 39.00602F));
        this.tableLayoutPanel1.Controls.Add(this.pbxInspectionDisplay, 0, 0);
        this.tableLayoutPanel1.Controls.Add(this.gbxEggInput, 0, 0);
        this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 57);
        this.tableLayoutPanel1.Name = "tableLayoutPanel1";
        this.tableLayoutPanel1.RowCount = 1;
        this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
        this.tableLayoutPanel1.Size = new System.Drawing.Size(1182, 570);
        this.tableLayoutPanel1.TabIndex = 28;

在表格布局中,pbxInspectionDisplay出乎意料地位于右侧,而gbxEggInput位于左侧。如果我将上面的相应部分替换为以下代码

        this.tableLayoutPanel1.Controls.Add(this.gbxEggInput, 0, 0);
        this.tableLayoutPanel1.Controls.Add(this.pbxInspectionDisplay, 0, 0);

它们以正确的顺序排列(pbxInspectionDisplay在左边,gbxEggInput在右边)。正如我所说,在其他代码块中,第一个控件位于左侧,第二个控件位于右侧。所以我试图理解是什么造成了差异。有人能解释一下为什么会这样吗?

为什么TableLayoutPanel把它的子控件以相反的顺序

我相信您希望指定要在其中添加控件的列。像这样:

this.tableLayoutPanel1.Controls.Add(this.pbxInspectionDisplay, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.gbxEggInput, 1, 0);