juliengj
Messages postés95Date d'inscriptionlundi 11 juin 2007StatutMembreDernière intervention 9 mai 2013
-
9 mai 2013 à 13:40
juliengj
Messages postés95Date d'inscriptionlundi 11 juin 2007StatutMembreDernière intervention 9 mai 2013
-
9 mai 2013 à 21:27
Bonjour à tous,
À partir d'une listView je voudrais pouvoir modifier ces éléments avec un propertyGrid.
Voilà un aperçus de ce que je voudrais faire:
Les colonnes de la listeView peuvent changer pendant le déroulement du programme donc le propertyGrid doit s'adapter.
Voici un début de code pour mon test:
Form1.vb
Public Class Form1
Public list As New List(Of itemGeneral)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' #################### Chargement de la liste ####################
Dim listColumns As String() = {"ID", "Name", "Type", "Data"}
Dim listColumnsType As Integer() = {-1, -3, -1, -3}
list.Clear()
ListView1.Clear()
For i As Integer = 0 To 3
ListView1.Columns.Add(listColumns(i))
Next
Dim listItemValue As String() = {"15", "Chat", "1", "Le chat", "56", "Chient", "1", "Le chients", "80", "Maison", "2", "La maison", "3", "Personne", "3", "Une personne", "150", "Banquier", "3", "Un banquier"}
For i As Integer = 0 To 5
Dim newItemGeneral As New itemGeneral(8)
Dim newListViewItem As ListViewItem = Nothing
For j As Integer = 0 To 3
Dim newItem As New item(listColumnsType(j), listItemValue((i * 4) + j))
If newListViewItem Is Nothing Then newListViewItem = New ListViewItem(newItem.Value) Else newListViewItem.SubItems.Add(newItem.Value)
newItemGeneral.Values.Add(newItem)
Next
ListView1.Items.Add(newListViewItem)
list.Add(newItemGeneral)
Next
End Sub
Private Sub ListView1_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
' #################### Élément sélectionné ####################
If ListView1.SelectedIndices.Count < 1 Then Exit Sub
Dim SelectedItemGeneral As itemGeneral = list(ListView1.SelectedIndices(0))
End Sub
End Class
ItemGeneral.vb 'Correspond aux données de la ligne (ListViewItem)
Public Class itemGeneral
Private _IsKey As Boolean = True
Private _key As Integer 'Clé de l'élément (pas d'importance dans mon exemple)
Public Values As New List(Of item) 'Liste des valeurs (correspond au ListViewItem)
Public Sub New()
_IsKey = False
End Sub
Public Sub New(ByVal m_key As Integer)
_key = m_key
End Sub
Public ReadOnly Property IsKey() As Boolean
Get
Return _IsKey
End Get
End Property
Public Property Key() As String
Get
Return _key
End Get
Set(ByVal value As String)
_key = value
End Set
End Property
End Class
Item.vb 'Correspond aux valeurs de la ligne (ListViewSubItem)
Imports System.ComponentModel
Public Class item
Public _Type As Integer 'Type de valeur (integer, String, Double, Boolean, etc...)
Public _Value As String 'Valeur
Public Property Value() As String
Get
Return _Value
End Get
Set(ByVal value As String)
_Value = value
End Set
End Property
Public Sub New(ByVal Type As Integer, ByVal Value As String)
_Type = Type
_Value = Value
End Sub
End Class
Maintenant comment obtenir le même résultat que mon screenshot ?
Merci par avance