Désactiver (griser) une ligne d'une listbox ? [Résolu]

cs_fabiano13 262 Messages postés mardi 26 février 2002Date d'inscription 27 février 2012 Dernière intervention - 8 janv. 2011 à 18:36 - Dernière réponse : cs_fabiano13 262 Messages postés mardi 26 février 2002Date d'inscription 27 février 2012 Dernière intervention
- 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
Afficher la suite 

5 réponses

Répondre au sujet
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 8 janv. 2011 à 23:03
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 8 janv. 2011 à 22:04
0
Utile
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]
Commenter la réponse de PCPT
cs_fabiano13 262 Messages postés mardi 26 février 2002Date d'inscription 27 février 2012 Dernière intervention - 8 janv. 2011 à 22:33
0
Utile
C'est ce que j'ai fait !

Du coup c'est super long.

Merci pour ton aide.
a+
Commenter la réponse de cs_fabiano13
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 8 janv. 2011 à 22:46
0
Utile
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.
Commenter la réponse de nhervagault
cs_fabiano13 262 Messages postés mardi 26 février 2002Date d'inscription 27 février 2012 Dernière intervention - 9 janv. 2011 à 00:04
0
Utile
Merci pour votre aide.

Bien à vous deux.
Fabiano
Commenter la réponse de cs_fabiano13

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.