Bonjour,
J'essaie d'utiliser les DataGridViewComboboxColumn avec un objet (sruct) en item.
Il n'y a pas de problème au remplissage, mais une erreur est généré lorsque j'y accède.
Ca fonctionne évidemment très bien avec un Combobox classique.
Voici le code :
Rien de bien compliqué...
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 // La Structure ListItem public struct ListItem { public string LabelString; public string Constant; public ListItem(string labelString, string constant) { this.LabelString = labelString; this.Constant = constant; } public override string ToString() { return LabelString; } } private void Form1_Load(object sender, EventArgs e) { DataGridViewComboBoxColumn cbc0 = new DataGridViewComboBoxColumn(); cbc0.Name = "cboVar"; cbc0.HeaderText = "Variable"; cbc0.Width = 120; cbc0.Items.Add(new ListItem("Un", "1")); cbc0.Items.Add(new ListItem("Deux", "2")); cbc0.Items.Add(new ListItem("Trois", "3")); dataGridView1.Columns.Insert(0, cbc0); cbc0.Dispose(); DataGridViewComboBoxColumn cbc1 = new DataGridViewComboBoxColumn(); cbc1.Name = "cboOpe"; cbc1.HeaderText = "Opérateur"; cbc1.Width = 80; cbc1.Items.Add(new ListItem("égal", "=")); cbc1.Items.Add(new ListItem("supérieur", ">")); cbc1.Items.Add(new ListItem("inférieur", "<")); dataGridView1.Columns.Insert(1, cbc1); cbc1.Dispose(); }
Et le message d'erreur quand on essaie de sélectionner une des lignes du 2ème combo alors que le choix du 1er a été fait :
"L'exception suivante s'est produite dans le DataGridView :
System.ArgumentException: La valeur DataGridViewComboBoxCell n'est pas valide.
Pour remplacer cette boite de dialogue par défaut, traitez l'évènement DataError."
Je ne comprends pas tout...
Merci pour l'aide.
RV
Partager