简单的操作顺序:
- 将 DataGridView 的 AutoSizeColumnMode 属性设置为 AllCells。
- 添加所有列的 Width 属性以及控件边框的额外宽度等的一些松弛(可能加 2)
- 将 DataGridView 的 Width 属性设置为您计算的宽度。
- 将窗体的宽度设置为 DataGridView 的宽度。
由你来实际编码。
编辑:我现在在编译器面前,所以我把它放在一起:
进入 Visual Studio。开始一个新项目。不要在设计器的表单上放任何东西。只需在初始化程序中使用此代码。
public Form1()
{
InitializeComponent();
// Create a DataGridView with 5 Columns
// Each column is going to sized at 100 pixels wide which is default
// Once filled, we will resize the form to fit the control
DataGridView dataGridView1 = new DataGridView();
for (int i = 0; i < 5; i++)
{
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Add(col);
}
dataGridView1.Location = new Point(0, 0);
// Add the DataGridView to the form
this.Controls.Add(dataGridView1);
// Step 2:
// Figure out the width of the DataGridView columns
int width = 0;
foreach (DataGridViewColumn col in dataGridView1.Columns)
width += col.Width;
width += dataGridView1.RowHeadersWidth;
// Step 3:
// Change the width of the DataGridView to match the column widths
// I add 2 pixels to account for the control's borders
dataGridView1.Width = width + 2;
// Step 4:
// Now make the form's width equal to the conbtrol's width
// I add 16 to account for the form's boarders
this.Width = dataGridView1.Width + 16;
}
此代码创建一个DataGridView
包含五列的,然后完全按照您的要求调整控件和表单的大小。我遵循了上面概述的确切步骤(第 1 步除外,因为我的列中没有任何数据)。
此代码有效。因此,如果您的工作不起作用,那么您肯定还有其他愚蠢的事情要做,我无法帮助您。