J'écris un programme dans VB.Net pour gérer les messages texte envoyés via une API. Il vous permet d'afficher les messages dans un datagridview et de filtrer par date, envoyé/non envoyé, etc.Informer l'utilisateur qu'un DataGridView est rempli
Pour charger les messages, j'exécute une instruction SQL et récupère un DataTable qui est ensuite défini en tant que DataSource pour mon DataGridView contrôle. Le problème est que, selon les filtres sélectionnés, l'utilisateur peut sélectionner un grand nombre d'enregistrements et mettre à jour le DataSource prend un certain temps. Je veux informer l'utilisateur de ce temps de chargement en fournissant une barre de progression ou une étiquette quelconque.
J'ai utilisé des barres de progression avant de boucler des données mais cela est en train de les charger toutes en même temps. J'ai pensé à afficher une étiquette lorsque l'utilisateur clique pour charger les données puis les cacher quand les données sont chargées. Mais cela arrive instantanément, même lorsque les données sont encore en cours de chargement.
Y at-il un événement sur le DataGridView que je peux utiliser peut-être? Quelque chose comme .DataSourceLoadStart et .DataSourceLoadFinished. Je sais que je suis juste en train de faire ces événements ... mais j'espère que cela rendra plus clair ce que je veux.
Cela fait ce qu'il devrait faire. Je pense que le problème est de rendre l'étiquette visible sur le clic du bouton de chargement. Au moment où ça se passe ... cliquez sur> afficher l'étiquette de chargement> charger les messages> liaison de données terminée (masquer le message à nouveau) Mais l'étiquette ne s'affichera pas pendant le chargement des données. Il affiche l'étiquette une fois que DataGridView est rempli, puis le masque immédiatement à nouveau. Même si mon code va comme:
Donc, ça devrait montrer l'étiquette en premier ... ??? – BanfordAjouter: Application.DoEvents() après l'appel pour afficher l'étiquette, de cette façon, il donnera la priorité à l'affichage de l'étiquette avant qu'il ne se charge de charger les messages – Tanner
MSDN Link: Doevents(): http://msdn.microsoft. com/fr-fr/library/system.windows.forms.application.doevents.aspx – Tanner