Comment nettoyer une grille de données de la vue
Je suis en train de remplir un DataGridView fonction de l'élément sélectionné dans une liste déroulante, j'ai cette partie de travail.
Cependant, j'ai besoin d'être en mesure d'effacer la grille avant d'ajouter de nouvelles données à partir d'un nouvel élément, plutôt que de simplement ajouter à la fin.
Comment puis-je effacer un DataGridView avant d'y ajouter des éléments?
- Les données liées au contrôle? Le Code s'il vous plaît!
- Double Possible de DataGridView.Clear()
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, null la source de données:
Puis d'effacer les lignes:
Ensuite définir la source de données à la nouvelle liste:
Si c'est lié à une source de données -
A fonctionné pour moi.
Vous pouvez effacer
DataGridView
de cette manièreSi c'est
databound
ensuite, essayez ceSI vous souhaitez effacer non seulement les Données, mais aussi les zones de liste modifiables, des Cases à cocher, essayez
Vous pouvez attribuer la source de données nulle de votre grille de données, puis reconnectez -.
Vous pourriez profiter de cette instruction suivante et pourraient faire le travail avec le manque de performance. Si vous voulez voir l'effet de ce, de mettre l'un des 2 prochaines instructions (Techniquement similitude) où vous devez effacer le DataGridView dans un try{} catch(...){} finally bloc et attendre ce qui se produit.
Vous améliorer cette tâche, mais ce n'est pas assez, il y a un problème à réinitialiser un DataGridView, en raison de colonnes qui reste dans le DataGridView objet. Enfin à mon avis, la meilleure façon que j'ai mis en œuvre dans ma pratique à la maison est de gérer cette gridView dans un fichier avec les lignes, les colonnes: une collection de disques basée sur la correspondance entre les lignes et de colonnes. Si vous pouvez l'améliorer, puis prenez votre propre choix a) ou b): foreach ou tout.
Bien, comme une recomendation Jamais dans votre vie de supprimer les colonnes d'abord, l'ordre est avant les lignes, après les cols, parce que, logiquement, les colonnes ont été créés en premier et ensuite les lignes.Ce serait une peine en termes de bonnes analyses.
Ensuite, le Mettre à l'intérieur d'une fonction ou d'une méthode.
Enfin, appelez votre nouvelle fonction ClearDataGridViewLoopWhile(); ou ClearDataGridViewForEach(); si vous avez besoin de l'utiliser, mais sa recommandé lorsque vous effectuez des requêtes et de l'évolution au cours du severall tables à la charge avec diferents noms d'en-tête dans le grieView. Mais si vous voulez conserver les en-têtes ici il y a une solution donnée.
Si vous souhaitez effacer tous les en-têtes ainsi que les données, par exemple si vous êtes à la commutation entre les 2 totalement différentes bases de données avec des champs différents, donc différente des colonnes et des en-têtes de colonne, j'ai trouvé la suite du travail. Sinon, quand vous passez, vous avez les colonnes/champs à partir de deux bases de données montrant dans la grille.
actualiser le datagridview et d'actualisation de la datatable
Pour avoir une grille de données, vous devez avoir une méthode qui est mise en forme de votre grille de données. Si vous voulez effacer la grille de données que vous venez de rappeler la méthode.
Voici ma méthode:
dgv est le nom de DataGridView
La solution est:
Efface la grille et préserve les colonnes.
dataGridView1.Rows.Clear();
Ce travail est à moi
Solution est: