2009-11-30 11 views
2

J'ai déjà trouvé des questions similaires sur SO déjà sur le net. Bien que je n'ai pas encore trouvé de réponse de travail.Comment vider les cellules d'un DataGridView en C#?

Alors je travaille dans une application sous forme de fenêtres en utilisant Visual Studio 2008. Le langage est C#

J'ai un DataGridView qui est pas lié à une source de données.

donc:

MyDataGridView.DataSource = null; 

ne fonctionnera pas ...

J'ai aussi essayé

MyDataGridView.Rows.Clear(); 

Mais cela supprime toutes mes lignes sur mesure.

Je cherche maintenant un moyen de simplement vider le contenu de toutes les cellules (sans inclure les cellules d'en-tête). Donc, cela ne devrait pas affecter autre chose que le contenu des cellules lui-même.

Répondre

0

Je viens de trouver comment le faire moi-même, je fais simplement une boucle dans la table, effaçant chaque cellule que je rencontre.

Note: « dgUsers » est le nom de mon DataGridView

for (int i = 0; i < dgUsers.Columns.Count ;i++) 
     { 
      for (int j = 0; j < dgUsers.Rows.Count; j++) 
      { 
       dgUsers.Rows[j].Cells[i].Value = ""; 
      } 
     } 

Je parie qu'il ya une meilleure façon de le faire et cela pourrait paraître un peu bâclée, mais il fait le travail. Pourtant, j'aimerais entendre une meilleure solution qui efface les données.

+0

C'est probablement le meilleur moyen de le faire si vos lignes ne sont pas liées à quoi que ce soit. –

0

le code par pieter888 na pas fonctionné pour moi le code i compris c'était

int cnt=dataGridView1.Rows.Count; 
     for (int i = 0; i < cnt; i++) 
     { 
      dataGridView1.Rows.Remove(dataGridView1.Rows[0]); 
     } 
-2

vous pouvez effacer l'ensemble du réseau en utilisant je crois que

gridviewname.columns.clear(); 
0

LINQ vous pouvez le rendre plus propre , spécialement avec les types implicites:

foreach (var cell in from DataGridViewRow row in dgv.Rows from DataGridViewCell cell 
    in row.Cells select cell){ 
     cell.Value = string.Empty; 
    } 
3
for (int i = 0; i < MyDataGridView.Columns.Count ;i++) 
    { 
     for (int j = 0; j < MyDataGridView.Rows.Count; j++) 
     { 
      MyDataGridView.Rows[j].Cells[i].Value = DBNull.Value; 
     } 
    } 
+0

Ajouter quelques explications – HaveNoDisplayName