Winforms 项目保存或其他更改后无法调整win forms TableLayoutPanel的大小

Winforms 项目保存或其他更改后无法调整win forms TableLayoutPanel的大小,winforms,tablelayoutpanel,Winforms,Tablelayoutpanel,我遇到了TableLayoutPanel的问题。我已配置表列和行的大小主要是动态的,但在保存或执行其他更改(无法确切说明此问题何时开始)后,动态缩放不起作用,我正在尝试调整表边框的大小。我的表格配置如下所示: 无更改示例(白色方块只是照片编辑..): 使用边框调整大小示例: 在这里,它应该根据已调整大小的边框进行相应的缩放,但它没有。我在谷歌上找不到一个与我的情况相近的答案,但我做错了什么,因为当我第一次创建和调整表的大小时,它完全按照我的要求工作 为TableLayoutPanel添加了

我遇到了
TableLayoutPanel
的问题。我已配置表列和行的大小主要是动态的,但在保存或执行其他更改(无法确切说明此问题何时开始)后,动态缩放不起作用,我正在尝试调整表边框的大小。我的表格配置如下所示:

无更改示例(白色方块只是照片编辑..):

使用边框调整大小示例:

在这里,它应该根据已调整大小的边框进行相应的缩放,但它没有。我在谷歌上找不到一个与我的情况相近的答案,但我做错了什么,因为当我第一次创建和调整表的大小时,它完全按照我的要求工作

为TableLayoutPanel添加了designer.cs代码:

    // 
    // tableLayoutPanel2
    // 
    this.tableLayoutPanel2.ColumnCount = 5;
    this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
    this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
    this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
    this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
    this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
    this.tableLayoutPanel2.Controls.Add(this.buttonFirstClockSecondDay_Type_A, 3, 1);
    this.tableLayoutPanel2.Controls.Add(this.textBox1, 1, 0);
    this.tableLayoutPanel2.Controls.Add(this.textBox2, 2, 0);
    this.tableLayoutPanel2.Controls.Add(this.label5, 0, 1);
    this.tableLayoutPanel2.Controls.Add(this.label1, 0, 3);
    this.tableLayoutPanel2.Controls.Add(this.label6, 0, 5);
    this.tableLayoutPanel2.Controls.Add(this.label7, 0, 7);
    this.tableLayoutPanel2.Controls.Add(this.buttonFirstClockFirstDay_Type_A, 1, 1);
    this.tableLayoutPanel2.Controls.Add(this.buttonFirstClockFirstDay_Type_B, 1, 2);
    this.tableLayoutPanel2.Controls.Add(this.buttonSecondClockFirstDay_Type_A, 1, 3);
    this.tableLayoutPanel2.Controls.Add(this.buttonSecondClockFirstDay_Type_B, 1, 4);
    this.tableLayoutPanel2.Controls.Add(this.buttonFirstClockSecondDay_Type_B, 3, 2);
    this.tableLayoutPanel2.Controls.Add(this.buttonSecondClockSecondDay_Type_A, 3, 3);
    this.tableLayoutPanel2.Controls.Add(this.buttonSecondClockSecondDay_Type_B, 3, 4);
    this.tableLayoutPanel2.Controls.Add(this.buttonThirdClockFirstDay_Type_A, 1, 5);
    this.tableLayoutPanel2.Controls.Add(this.buttonThirdClockFirstDay_Type_B, 1, 6);
    this.tableLayoutPanel2.Controls.Add(this.buttonFourthClockFirstDay_Type_A, 1, 7);
    this.tableLayoutPanel2.Controls.Add(this.buttonFourthClockFirstDay_Type_B, 1, 8);
    this.tableLayoutPanel2.Controls.Add(this.buttonThirdClockSecondDay_Type_A, 3, 5);
    this.tableLayoutPanel2.Controls.Add(this.buttonThirdClockSecondDay_Type_B, 3, 6);
    this.tableLayoutPanel2.Controls.Add(this.buttonFourthClockSecondDay_Type_A, 3, 7);
    this.tableLayoutPanel2.Controls.Add(this.buttonFourthClockSecondDay_Type_B, 3, 8);
    this.tableLayoutPanel2.Controls.Add(this.label3, 2, 1);
    this.tableLayoutPanel2.Controls.Add(this.label2, 2, 2);
    this.tableLayoutPanel2.Controls.Add(this.label8, 2, 3);
    this.tableLayoutPanel2.Controls.Add(this.label4, 2, 4);
    this.tableLayoutPanel2.Controls.Add(this.label14, 2, 5);
    this.tableLayoutPanel2.Controls.Add(this.label13, 2, 6);
    this.tableLayoutPanel2.Controls.Add(this.label15, 2, 7);
    this.tableLayoutPanel2.Controls.Add(this.label19, 2, 8);
    this.tableLayoutPanel2.Controls.Add(this.label10, 4, 1);
    this.tableLayoutPanel2.Controls.Add(this.label11, 4, 2);
    this.tableLayoutPanel2.Controls.Add(this.label9, 4, 3);
    this.tableLayoutPanel2.Controls.Add(this.label12, 4, 4);
    this.tableLayoutPanel2.Controls.Add(this.label17, 4, 5);
    this.tableLayoutPanel2.Controls.Add(this.label18, 4, 6);
    this.tableLayoutPanel2.Controls.Add(this.label16, 4, 7);
    this.tableLayoutPanel2.Controls.Add(this.label20, 4, 8);
    this.tableLayoutPanel2.Location = new System.Drawing.Point(382, 56);
    this.tableLayoutPanel2.Name = "tableLayoutPanel2";
    this.tableLayoutPanel2.RowCount = 9;
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.5F));
    this.tableLayoutPanel2.Size = new System.Drawing.Size(437, 288);
    this.tableLayoutPanel2.TabIndex = 6;
    this.tableLayoutPanel2.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel2_Paint);

第一张图片有拖动手柄,表明它是在设计时拍摄的

第二张图片没有拖动手柄,这意味着它是在运行时拍摄的?你改变表格的大小了吗

要使TableLayoutPanel随表单更改大小,您需要:

  • 使用TableLayoutPanel的Anchor()属性并启用“全部” 四面

  • 设置要填充的TableLayoutPanel的Dock()属性


  • 哪种方法更好取决于您的整体表单布局,我们看不到。

    第一张图片有拖动手柄,表明它是在设计时拍摄的

    第二张图片没有拖动手柄,这意味着它是在运行时拍摄的?你改变表格的大小了吗

    要使TableLayoutPanel随表单更改大小,您需要:

  • 使用TableLayoutPanel的Anchor()属性并启用“全部” 四面

  • 设置要填充的TableLayoutPanel的Dock()属性


  • 哪种方法更好取决于您的整体表单布局,我们看不到。

    由于某种原因,重新加载解决方案后,它会再次工作。为什么它以前不工作是个谜。

    在重新加载解决方案后,由于某种原因,它再次工作。为什么它以前不起作用,这是一个谜。

    屏幕截图总是一种糟糕的调试代码的方式。打开窗体的designer.cs源代码文件,粘贴在那里找到的代码。@HansPassant是否确实需要该代码?它有915行长,可能有什么特别的吗?所以用户需要发布最低限度的复制。你肯定不需要那么多行和列来演示这个问题吗?@HansPassant添加了定义TableLayoutPanel的部分。屏幕截图总是调试代码的糟糕方式。打开窗体的designer.cs源代码文件,粘贴在那里找到的代码。@HansPassant是否确实需要该代码?它有915行长,可能有什么特别的吗?所以用户需要发布最低限度的复制。当然你不需要那么多行和列来演示这个问题吗?@HansPassant添加了定义TableLayoutPanel的部分。不,在设计时也是这样。遗憾的是,我忘了点击表单。不,那也是在设计时。遗憾的是,我忘了在表单上单击“上一步”。