Bonjour, j'ai un bouton dans windows form, qui exécute une requête SQL, la requête prends des fois beaucoup de temps en fonction de la taille des données demandé, j'ai voulu alors mettre un loading cursor sous forme GIF qui s'affiche aprés un clique sur le boutton filtre et tant qu'il a pas encore affiché les donnée dans DataGridView
la methode qui me fait afficher le cursor
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private void SetLoading(bool displayLoader) { if (displayLoader) { this.Invoke((MethodInvoker)delegate { pictureBox3.Visible = true; this.Cursor = Cursors.WaitCursor; }); } else { this.Invoke((MethodInvoker)delegate { pictureBox3.Visible = false; this.Cursor = Cursors.Default; }); } }
Code source du bouton qui exécute la requete
en exécutant le code le cursor s'affiche bien quand on clique sur le bouton mais j'arrive pas à le masquer une fois les donnée sont affiché sur le DGV
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 // Recupérer la requête et remplir la dataGridview via la méthode FillDGV(requetefiltre) private void Btn_Filtrer_Click(object sender, EventArgs e) { SetLoading(true); string chosenFilters = GetchosenFilters(); if (chosenFilters.Length > 0) { try { requetefiltre = string.Format("date between '{0}' and '{1}' and class_name in ({2}) and Tag like '%{3}%' ORDER BY date asc", dtpStartDate.Value, dtpEndDate.Value, chosenFilters, txtSearchByWord.Text); FillDGV(requetefiltre); /*requetefiltre = string.Format("date between '{0}' and '{1}' and class_name in ({2}) and Tag IN ('{3}')", dtpStartDate.Value, dtpEndDate.Value, chosenFilters, txtSearchByWord.Text.Replace(",", "','"));*/ // SetLoading(false); FillDGV(requetefiltre); /// la méthode qui exécute la requete } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { FillDGV("1 = 2"); } }
avez vous des suggestions ?
Partager