Si potrebbe prendere questa prossima istruzione e farebbe il lavoro con la mancanza di perfomance.Se vuoi vedere l'effetto di ciò, metti una delle 2 istruzioni successive (Tecnicamente simili) in cui devi cancellare il DataGridView in un try {} catch (...) {} infine blocca e aspetta cosa succede.
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
Migliorate questo compito, ma la sua non è sufficiente, c'è un problema di ripristinare un DataGridView, a causa delle colonne che rimane nell'oggetto DataGridView. Infine, suggerisco, il modo migliore che ho implementato nella mia pratica di casa è di gestire questo gridView come un file con righe, colonne: una collezione di record basata sulla corrispondenza tra righe e colonne. Se puoi migliorare, prendi la tua scelta a) ob): foreach o while.
//(a): With foreach
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
foreach(object _row in dataGridView1.Rows){
dataGridView1.Rows.RemoveAt(0);
}
//(b): With foreach
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Columns.Count > 0)
{
dataGridView1.Columns.RemoveAt(0);
}
Beh, come una raccomandazione Mai nella vostra vita eliminare le colonne prima, l'ordine è prima le righe dopo le cols, perché logicamente le colonne in cui creato per primo e poi il rows.It sarebbe un rigore in termini di corretta analisi
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
foreach (object _row in dataGridView1.Rows)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Columns.Count > 0)
{
dataGridView1.Columns.RemoveAt(0);
}
Quindi, inserirlo in una funzione o un metodo.
private void ClearDataGridViewLoopWhile()
{
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Columns.Count > 0)
{
dataGridView1.Columns.RemoveAt(0);
}
}
private void ClearDataGridViewForEach()
{
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
foreach (object _row in dataGridView1.Rows)
{
dataGridView1.Rows.RemoveAt(0);
}
}
Infine, chiamare la nuova funzione ClearDataGridViewLoopWhile(); o ClearDataGridViewForEach(); dove è necessario utilizzarlo, ma è consigliato quando si eseguono query e si cambiano diverse tabelle che caricheranno con nomi di intestazione differenti nella grieView. Ma se vuoi preservare le intestazioni qui c'è una soluzione data.
sono i dati legati al controllo? Codice per favore! – davenewza
Possibile duplicato di [DataGridView.Clear()] (http://stackoverflow.com/questions/3744882/datagridview-clear) –