C# 当我';我正在调整表单大小?

C# 当我';我正在调整表单大小?,c#,winforms,user-interface,datagridview,C#,Winforms,User Interface,Datagridview,我有WinForms中的表单,看起来像 我希望用户能够调整表单的大小。当他这样做时,按钮将保持不变,DataGridView将增长 现在,DataGridView与按钮发生冲突,看起来很像。 我希望DataGridView增长,但不会与按钮冲突 我尝试了许多不同的代码组合,但它并没有像我想要的那样工作。 我希望按钮位于DataGridView之间 设计师: // // dataGridView1 // this.dataGridView1.

我有WinForms中的表单,看起来像

我希望用户能够调整表单的大小。当他这样做时,按钮将保持不变,DataGridView将增长

现在,DataGridView与按钮发生冲突,看起来很像。 我希望DataGridView增长,但不会与按钮冲突

我尝试了许多不同的代码组合,但它并没有像我想要的那样工作。 我希望按钮位于DataGridView之间

设计师:

 // 
        // dataGridView1
        // 
        this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dataGridView1.Location = new System.Drawing.Point(13, 60);
        this.dataGridView1.Name = "dataGridView1";
        this.dataGridView1.RowTemplate.Height = 24;
        this.dataGridView1.Size = new System.Drawing.Size(291, 326);
        this.dataGridView1.TabIndex = 0;
        // 
        // dataGridView2
        // 
        this.dataGridView2.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.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dataGridView2.Location = new System.Drawing.Point(566, 60);
        this.dataGridView2.Name = "dataGridView2";
        this.dataGridView2.RowTemplate.Height = 24;
        this.dataGridView2.Size = new System.Drawing.Size(284, 326);
        this.dataGridView2.TabIndex = 1;
        // 
        // button1
        // 
        this.button1.Anchor = System.Windows.Forms.AnchorStyles.None;
        this.button1.Location = new System.Drawing.Point(375, 93);
        this.button1.Name = "button1";
        this.button1.Size = new System.Drawing.Size(121, 83);
        this.button1.TabIndex = 2;
        this.button1.Text = "button1";
        this.button1.UseVisualStyleBackColor = true;
        // 
        // button2
        // 
        this.button2.Anchor = System.Windows.Forms.AnchorStyles.None;
        this.button2.Location = new System.Drawing.Point(375, 187);
        this.button2.Name = "button2";
        this.button2.Size = new System.Drawing.Size(121, 83);
        this.button2.TabIndex = 3;
        this.button2.Text = "button2";
        this.button2.UseVisualStyleBackColor = true;
        // 
        // button3
        // 
        this.button3.Anchor = System.Windows.Forms.AnchorStyles.None;
        this.button3.Location = new System.Drawing.Point(375, 281);
        this.button3.Name = "button3";
        this.button3.Size = new System.Drawing.Size(121, 83);
        this.button3.TabIndex = 4;
        this.button3.Text = "button3";
        this.button3.UseVisualStyleBackColor = true;
        // 
        // Form1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(862, 398);
        this.Controls.Add(this.button3);
        this.Controls.Add(this.button2);
        this.Controls.Add(this.button1);
        this.Controls.Add(this.dataGridView2);
        this.Controls.Add(this.dataGridView1);
        this.Name = "Form1";
        this.Text = "Form1";
        ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
        ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit();
        this.ResumeLayout(false);

试试
表格布局面板
。您可以定义3列,第一列设置为50%,第二列设置为按钮宽度(或设置为
自动调整大小
,最初将其设置为绝对值或百分比值,然后放置按钮。放置的一列返回并更改为自动调整大小,否则,如果列中没有任何内容,该列将收缩为零)第三个是50%。然后您将需要至少3行,每个按钮1行

将第一个DataGridView放在单元格0,0(第0列,第0行)中,并将RowSpan设置为3。将第二个DataGridView放在单元格2,0(第2列,第0行)中,再次将RowSpan设置为3。然后在中间栏(Calk 1)把你的3个按钮,每排一个。您可以删除锚点在这一点上,使按钮浮动在中间的列。将DataGridView设置为DockStyle.Fill,那么DataGridRow与按钮重叠不会有任何问题

这里有几个截图


对Datagridview和按钮使用Anchor属性