如果网格较小,则调整DataGridView的列以填充可用空间,并在网格大于可用空间的情况下使用滚动

我想根据所需的空间调整DataGridView的所有列,以完全显示其所有数据。 如果所需空间小于可用空间我希望网格填充这个超出空间,但如果可用空间不足以正确显示我想要DataGridView的所有列自动创建滚动。 是否有捷径可寻?

单击DataGridView并选择“Edit Columns …”,然后转到“Layout”并将“AutoSizeMode”设置为“Fill”。

希望这是你正在寻找的。

干杯

如果要保持您的表(DataGridView)格式化,以便所有列都自动resize,但特别是一列填充剩余空间,您可以执行以下操作:

//Store the number of columns in a variable int columnCount = dataGridView.Columns.Count; //If we want the last column to fill the remaining space int lastColumnIndex = columnCount - 1; //Loop through each column and set the DataGridViewAutoSizeColumnMode //In this case, if we will set the size of all columns automatically, but have //the last column fill any extra space available. foreach(DataGridViewColumn column in dataGridView.Columns) { if (column.Index == columnCount - lastColumnIndex) //Last column will fill extra space { column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } else //Any other column will be sized based on the max content size { column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } } //Turn the scrollbars on for the DataGridView if needed dataGridView.ScrollBars = ScrollBars.Both; 

转到DataGridView属性选择“AutoSizeColumnsMode”。 设置“填充”。

DataGridView属性 – >“AutoSizeMode”到“Fill”确实填满了所有可用空间,但是如果列足够大以占据大部分网格空间,那么其余的列大小将缩小。

也许你可以尝试“AutoSizeMode”到“AllCells”。 这不仅填满了整个网格,而且还有足够的空间来查看所有列(带有水平滚动条)