Désactiver (griser) une ligne d'une listbox ?

Résolu
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012 - 8 janv. 2011 à 18:36
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012 - 9 janv. 2011 à 00:04
Comment rendre inactive une ligne d'une listbox ?

Du genre :

ListBox1.Items(ListBox1.SelectedIndex()).Enabled = true

D'avance merci.
Fabiano

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 janv. 2011 à 23:03
oui
ou SELON L'USAGE, profiter du datasource

Public Class Form1
    Private Class ItemPerso
        Private mValue As String
        Private mEnabled As Boolean

        Public Property Value() As String
            Get
                Return mValue
            End Get
            Set(ByVal value As String)
                mValue = value
            End Set
        End Property

        Public Property Enabled() As Boolean
            Get
                Return mEnabled
            End Get
            Set(ByVal value As Boolean)
                mEnabled = value
            End Set
        End Property

        Public Sub New(ByVal sValue As String, ByVal bEnabled As Boolean)
            mValue = sValue
            mEnabled = bEnabled
        End Sub
    End Class

    Private mListOfItems As New List(Of ItemPerso)
    Private bLoading As Boolean

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 1 To 300
            mListOfItems.Add(New ItemPerso("Ligne " & i.ToString, ((i Mod 2) = 0)))
        Next
        bLoading = True
        ListBox1.DataSource = mListOfItems
        ListBox1.DisplayMember = "Value"
        bLoading = False
    End Sub

    Private Sub ListBox1_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedValueChanged
        If ListBox1.SelectedIndex <> -1 And Not bLoading Then
            With DirectCast(ListBox1.SelectedValue, ItemPerso)
                If .Enabled Then
                    MessageBox.Show(String.Format("La valeur {0} est sélectionnée", .Value))
                Else
                    'PAS DE CODE, PAS D'ACTION
                    Console.WriteLine("Item {0} désactivé", .Value)
                End If
            End With
        End If
    End Sub
End Class
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 janv. 2011 à 22:04
salut,

à ma connaissance ce n'est pas possible
il te reste juste à ne pas agir sur l'action et la condition (position de la ligne)

ou faire ta propre listbox

[hr]
0
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012
8 janv. 2011 à 22:33
C'est ce que j'ai fait !

Du coup c'est super long.

Merci pour ton aide.
a+
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
8 janv. 2011 à 22:46
salut,

il est peut être possible de dériver le controle listbox
et d'ajouter un comportement sur les items de la listbox.

Bon dev.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_fabiano13 Messages postés 262 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 27 février 2012
9 janv. 2011 à 00:04
Merci pour votre aide.

Bien à vous deux.
Fabiano
0
Rejoignez-nous