Recuperer les informations d'une checkedListBox [VB.NET] - VB/VBA/VBS - Programmation
Marsh Posté le 25-05-2005 à 23:48:01
voici le bout de code correspondant :
Private Sub recupererActItemsChecked()
Dim cpt As Integer = 0
Dim i As Integer = 0
Dim tabAct(2) As Integer
If CheckedListBoxAct.CheckedItems.Count = 2 Then
' on parcourt la checkedlistbox
For cpt = 0 To CheckedListBoxAct.Items.Count
If CheckedListBoxAct.Items.Item(i).Checked = True Then
tabAct(i) = cpt
i += 1
End If
Next
For i = 0 To tabAct.Length - 1
MsgBox(tabAct(i), MsgBoxStyle.Information)
Next
Else
MsgBox("2 activites obligatoires", MsgBoxStyle.Exclamation)
End If
End Sub
il me met une erreur ds la condition du if... je ne sais pas comment savoir si l'element courant est checked
Marsh Posté le 26-05-2005 à 05:55:35
Je ne connais pas .Net mais la logique me dirait de travailler comme ceci:
If CheckedListBoxAct.Items(cpt).Checked = True Then |
Marsh Posté le 26-05-2005 à 16:25:57
Tu veux dire que ça ne fonctionne pas?
Quel message d'erreur?
Marsh Posté le 26-05-2005 à 18:10:30
Une exception non gérée du type 'System.MissingMemberException' s'est produite dans microsoft.visualbasic.dll
Informations supplémentaires : Le membre public 'checked' du type 'DataRowView' est introuvable.
tu veux que je t'envoi par mail mon appli ?
Marsh Posté le 27-05-2005 à 10:25:36
A part pour ma curiosité, je ne pourrais rien en faire.
Je n'ai pas .NET d'installé.
J'espère que knakes (ou n'importe qui d'autre qui pratique .Net) est encore dans les environs et qu'il pourra t'aider.
Marsh Posté le 27-05-2005 à 11:20:43
Deja sur quelle ligne tu as l'erreur ? De plus le mesage d'erreur me parait clair et n'a a priori pas grand choses a voir avec la CheckedListBox
Marsh Posté le 27-05-2005 à 15:41:33
il apparait sur cette ligne :
If CheckedListBoxAct.Items.Item(i).Checked = True Then
Le truc ce que le .Checked n'est pas disponible, je l'ai rajouté car ça me semblait correct...
le truc que j'aimerais faire, c'est un test si l'element de rang i de la checkedlistbox est checked ou pas..
Marsh Posté le 27-05-2005 à 16:16:46
Tu dois, en tout cas, remplacer i par cpt!
Marsh Posté le 27-05-2005 à 16:54:14
Merci pour le MP. Je vais tester. réponse dans la soirée. (si vous tenez jusque là)
Marsh Posté le 27-05-2005 à 18:09:48
je pense avoir trouvé une fonction sympatique sur la msdn :
Private Sub WhatIsChecked_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WhatIsChecked.Click
' Display in a message box all the items that are checked.
Dim indexChecked As Integer
Dim itemChecked As Object
Const quote As String = """"
' First show the index and check state of all selected items.
For Each indexChecked In CheckedListBox1.CheckedIndices
' The indexChecked variable contains the index of the item.
MessageBox.Show("Index#: " + indexChecked.ToString() + ", is checked. Checked state is:" + _
CheckedListBox1.GetItemCheckState(indexChecked).ToString() + "." )
Next
' Next show the object title and check state for each item selected.
For Each itemChecked In CheckedListBox1.CheckedItems
' Use the IndexOf method to get the index of an item.
MessageBox.Show("Item with title: " + quote + itemChecked.ToString() + quote + _
", is checked. Checked state is: " + _
CheckedListBox1.GetItemCheckState(CheckedListBox1.Items.IndexOf(itemChecked)).ToString() + "." )
Next
End Sub
Marsh Posté le 25-05-2005 à 23:12:07
J'ai du mal à récuperer les 2 éléments cochés dans une CheckedListBox...
Je la remplis à partir d'une BD.
Quelqu'un peut m'aguiller sur la methode a suivre ?