none
Como deshabilitar un item determinado RRS feed

  • Pregunta

  • Mi duda es tal y como dice el titulo, tengo un combobox donde tengo varios items lo que quiero es que el ejecutar el programa en si algunos estén deshabilitados que no se puedan seleccionar para luego poder volver a activarlos, pero no se como se haría eso, si me pudieran ayudar gracias de antemano.
    lunes, 30 de septiembre de 2019 3:18

Todas las respuestas

  • Puedes usar el evento DrawItem para presentar los items deshabilitados de forma diferente. Para hacerlo debes poner la propiedad DrawMode a OwnerDrawFixed.

    Si por ejemplo tienes una lista de los elementos no habilitados puedes hacer algo como esto:

    Dim DisabledList As New List(Of String)

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        DisabledList.Add("Casa")
        DisabledList.Add("Hotel")
    End Sub

    Private Sub ComboBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ComboBox1.DrawItem
            'Create our font that will be used for drawing each item
            Dim ItemFont As New Font("Arial", 8, FontStyle.Regular)
            Dim CurrentItem As String = DirectCast(sender, ComboBox).Items(e.Index)

            e.Graphics.FillRectangle(New SolidBrush(Color.White), e.Bounds)
            If DisabledList.Contains(CurrentItem) Then
                ' Item en la lista de no habilitados.
                e.Graphics.DrawString(CurrentItem, ItemFont, New SolidBrush(Color.Gray), e.Bounds.X, e.Bounds.Y)
            Else
                e.Graphics.DrawString(CurrentItem, ItemFont, Brushes.Black, e.Bounds.X, e.Bounds.Y)
            End If
    End Sub


    Saludos, Javier J

    lunes, 30 de septiembre de 2019 6:36
  • Eso si, pero solo hace que se pongan en gris, lo que yo quisiera es que no se pudieran seleccionar, algo como enable = false
    • Propuesto como respuesta Pablo Rubio miércoles, 2 de octubre de 2019 18:17
    lunes, 30 de septiembre de 2019 19:12
  • Bueno, al seleccionar el item puedes controlar también si pertenece a la lista DisabledList y si es así no permitir que se seleccione.

    Saludos, Javier J

    • Propuesto como respuesta Pablo Rubio miércoles, 2 de octubre de 2019 18:18
    martes, 1 de octubre de 2019 6:13
  • Eso si, y estado probando varias cosas pero no me resulta en todo caso, como haría para que no se pueda seleccionar porque el código solo los marca en gris pero igual se pueden seleccionar, gracias de antemano 
    domingo, 6 de octubre de 2019 19:30
  • Hola:
    La unica forma de que NO se pueda seleccionar un item de un combobox, es que NO este presente.
    Tendras que cargar el combobox con diferentes condiciones para las diferentes opciones.

    Un saludo desde Bilbo
    Carlos
    domingo, 6 de octubre de 2019 20:34