Bonsoir,
Comme indiqué dans le titre du message j'ai un souci avec un controle listview.
Je n'ai pas pu le préciser dans le titre mais c'est posé sur un winform.
Bref, tout ne bas de mon listview j'ai une ligne qui n'est pas remplit.
Sur ce meme listview j'ai un Evenment MouseUp qui me sert à afficher un controle ContextMenu (ce n'est peut etre pas la meilleur methode me direz vous).
Et come on peut s'y attendre je tente de récupérer la propriete Tag de mon item sur un 'SelectedListViewItemCollection' qui n'existe pas !
A ce moment la apparait mon erreur OutofRangeException.
Pour y palier j'ai quand meme pu utiliser System.Exception.
Mais, et c'est là que sa me gave, c'est ULTRA LENT.
Sa bloque pendant bien deux trois secondes....
Donc en fait j'aurais voulu savoir si il n'existait pas un gestionnaire d'erreur à utiliser dans ces cas la que je n'aurais pas encore trouvé ?
Ou bien est ce que je devait écrire mon affichage du controle ContextMenu differement.
Pour ce cas la je vous poste mon code à ce sujet :
Tout début de réponse ou ce que vous voulez sera le bienvenue
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 namespaces superToto Class toto{ ..... private void InitializeComponent() { ...... this.listView.MouseUp +=new MouseEventHandler(OnRightClickListview); ...... } .... private void OnRightClickListview(object sender,MouseEventArgs e) { if(e.Button == MouseButtons.Right) { ListView.SelectedListViewItemCollection t = ((ListView) sender).SelectedItems; try { MessageBox.Show(t[0].Tag.ToString()); this.MonMenuContextuel.Popup += new EventHandler(OnPopupMonMenu); ((ListView) sender).ContextMenu = this.MonMenuContextuel; } catch(System.Exception y) { this.MonMenuContextuel.Popup -= new EventHandler(OnPopupMonMenu); ((ListView) sender).ContextMenu = null; MessageBox.Show(y.Message); } } } private void OnPopupMonMenu(object sender,System.EventArgs e) { this.MonMenuContextuel.MenuItems.Clear(); MenuItem menuItem1 = new MenuItem("&Copy"); MenuItem menuItem2 = new MenuItem("&Find and Replace"); if(this.MonMenuContextuel.SourceControl == this.listView) { // Add MenuItems to display for the TextBox. MonMenuContextuel.MenuItems.Add(menuItem1); MonMenuContextuel.MenuItems.Add(menuItem2); } } .... }
Bize et bonne soirée,
epox
Partager