eliminando el espacio gris vacío en la cuadrícula de datos en c #

texto alternativo http://sofes.miximages.com/c%23/www.freeimagehosting.net

¿Cómo elimino el espacio vacío ?, es decir, quiero que la cuadrícula de datos se redimensione automáticamente en función del no. de filas Sé por columnas que podemos hacer eso utilizando el valor de relleno en AutoSizeColumnMode, pero no hay valor de relleno para AutoSizeRowsMode.

Un poco de hack, pero puedes intentar esto:

dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control; 

Por cierto esto ha sido reportado como un error .

Se puede hacer, debe ajustar ClientSize cuando se agrega o elimina una fila. Sin embargo, no oculta completamente el fondo una vez que aparece la barra de desplazamiento vertical y la altura de la grilla no es divisible por la altura de la fila. Agregue una nueva clase a su proyecto y pegue el código que se muestra a continuación. Comstackr. Coloque el nuevo control desde la parte superior de la caja de herramientas en su formulario.

 using System; using System.Drawing; using System.Windows.Forms; class AutoSizeGrid : DataGridView { private int gridHeight; private bool resizing; protected override void OnClientSizeChanged(EventArgs e) { if (!resizing) gridHeight = this.ClientSize.Height; base.OnClientSizeChanged(e); } protected override void OnRowsAdded(DataGridViewRowsAddedEventArgs e) { setGridHeight(); base.OnRowsAdded(e); } protected override void OnRowsRemoved(DataGridViewRowsRemovedEventArgs e) { setGridHeight(); base.OnRowsRemoved(e); } protected override void OnHandleCreated(EventArgs e) { this.BeginInvoke(new MethodInvoker(setGridHeight)); base.OnHandleCreated(e); } private void setGridHeight() { if (this.DesignMode || this.RowCount > 99) return; int height = this.ColumnHeadersHeight + 2; if (this.HorizontalScrollBar.Visible) height += SystemInformation.HorizontalScrollBarHeight; for (int row = 0; row < this.RowCount; ++row) { height = Math.Min(gridHeight, height + this.Rows[row].Height); if (height >= gridHeight) break; } resizing = true; this.ClientSize = new Size(this.ClientSize.Width, height); resizing = false; if (height < gridHeight && this.RowCount > 0) this.FirstDisplayedScrollingRowIndex = 0; } } 

Establezca la propiedad MaxHeight de la cuadrícula de datos. por ejemplo, MaxHeight="150"

En mi caso, he eliminado el espacio que has mostrado en la cuadrícula anterior con borde rojo.