Sie könnten diese nächste Anweisung nehmen und würde die Arbeit mit mangelnder Leistung tun.Wenn Sie den Effekt sehen wollen, setzen Sie eine der beiden nächsten Anweisungen (Technisch ähnlich), wo Sie das DataGridView in ein try {} catch (...) {} endgültig blockieren müssen und warten was passiert.
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
Sie diese Aufgabe verbessern, aber es ist nicht genug, gibt es ein Problem, ein Datagridview zurückgesetzt, weil der colums, die im Datagridview-Objekt bleibt. Schließlich schlage ich vor, dass der beste Weg, den ich in meiner häuslichen Praxis implementiert habe, darin besteht, diese GridView als eine Datei mit Zeilen, Spalten zu behandeln: eine Datensatzsammlung basierend auf der Übereinstimmung zwischen Zeilen und Spalten. Wenn du dich verbessern kannst, dann nimm deine eigene Wahl a) oder b): foreach oder 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);
}
Nun, als recomendation zuerst die Spalten nie in Ihrem Leben löschen, ist die Reihenfolge, bevor die Zeilen nach den Spalten, weil logisch die Spalten, in denen zuerst erstellt und dann würde die rows.It eine Strafe in Bezug auf seinen von korrekten analisys.
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);
}
Dann setzen Sie es in eine Funktion oder Methode.
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);
}
}
Schließlich, rufen Sie Ihre neue Funktion ClearDataGridViewLoopWhile(); oder ClearDataGridViewForEach(); wo Sie es verwenden müssen, aber es wird empfohlen, wenn Sie Abfragen machen und mehrere Tabellen wechseln, die mit verschiedenen Header-Namen in der grieView geladen werden. Aber wenn Sie hier Header behalten wollen, gibt es eine Lösung.
werden die Daten an das Steuerelement gebunden? Code bitte! – davenewza
Mögliches Duplikat von [DataGridView.Clear()] (http://stackoverflow.com/questions/3744882/datagridview-clear) –