rimuovendo lo spazio grigio vuoto in datagrid in c #

alt text http://sofit.miximages.com/c%23/www.freeimagehosting.net

come faccio a rimuovere lo spazio vuoto, cioè voglio che il datagrid si ridimensiona automaticamente a seconda del no. di righe. so per le colonne possiamo farlo usando il valore di riempimento in AutoSizeColumnMode, ma non c’è alcun valore di riempimento per AutoSizeRowsMode.

Un po ‘un trucco ma puoi provare questo:

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

Btw questo è stato segnalato come un bug .

Può essere fatto, dovresti adattare il ClientSize quando una riga viene aggiunta o rimossa. Tuttavia, non nasconde lo sfondo completamente una volta visualizzata la barra di scorrimento verticale e l’altezza della griglia non è divisibile per l’altezza della riga. Aggiungi una nuova class al tuo progetto e incolla il codice mostrato di seguito. Compilare. Rilasciare il nuovo controllo dalla parte superiore della casella degli strumenti sul modulo.

 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; } } 

Impostare la proprietà MaxHeight del datagrid. es. MaxHeight="150"

Nel mio caso ho rimosso lo spazio che hai mostrato nella griglia sopra con il bordo rosso.