C# 根据表单包含的datagridview的大小调整表单大小

C# 根据表单包含的datagridview的大小调整表单大小,c#,forms,datagridview,C#,Forms,Datagridview,my datagridview已连接到数据源: this.dataGridView1.DataSource = mydatatable; 我想向用户展示这些数据。如果它有超过X行,那么它将有一个垂直滚动条 将其放在表单中看起来不太好,因为表单的大小可能大于数据表的大小。我尝试根据datagridview的大小手动调整表单大小,如下所示: this.Size = dataGridView1.Size; 但是它不起作用(如果datagridview较小,它不会使表单变小。如果它大于它所覆盖的部分

my datagridview已连接到数据源:

this.dataGridView1.DataSource = mydatatable;
我想向用户展示这些数据。如果它有超过X行,那么它将有一个垂直滚动条

将其放在表单中看起来不太好,因为表单的大小可能大于数据表的大小。我尝试根据datagridview的大小手动调整表单大小,如下所示:

this.Size = dataGridView1.Size;
但是它不起作用(如果datagridview较小,它不会使表单变小。如果它大于它所覆盖的部分)。也许有一种不用填写表格就能展示桌子的方法?或者有没有办法正确调整它的大小

我尝试了以下方法(作为对答案的回应):

我还有:

this.AutoSize=true; 
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 

它仍然不会更改包含表单的大小。

尝试从DataGridView的高度和宽度构造一个新的
size
对象,然后将其指定给表单大小:

Size newSize = new Size(dataGridView1.Width, dataGridView1.Height);
this.Size = newSize;

您可以根据表单内容自动调整表单大小,方法是在表单上设置
Autosize=True
AutoSizeMode=growthandshrink

您是否尝试过
dataGridView1.Height
?this.dataGridView1.DataSource=competingCourses;this.dataGridView1.RightToLeft=RightToLeft.Yes;this.dataGridView1.AutoSizeColumnsMode=dataGridViewAutoSizeColumnsMode.AllCells;在上面添加您的建议后,我还有:this.AutoSize=true;this.AutoSizeMode=System.Windows.Forms.AutoSizeMode.growtandshrink;它仍然不会更改包含表单的大小。@user1743977您有权编辑您的问题,我们鼓励您这样做。您在评论中给出的代码应该添加到问题中。我在这里为你做的。
Size newSize = new Size(dataGridView1.Width, dataGridView1.Height);
this.Size = newSize;