Principales respuestas
Habilitar o deshabilitar un combobox

Pregunta
-
Hola chic@s nuevamente solicito de su ayuda, verán estoy realizando un formulario y tengo varias combobox sin embargo necesito que una en especifico se habilite o des habilite dependiendo del valor de otra.
es decir que cuando por ejemplo el valor seleccionado sea "c" la otra combo se habilite y cuando no sea así se des habilite
De antemano muchas gracias
Respuestas
-
Fíjate en la firma del procedimiento de tipo Sub 'ComboSegmento_SelectedIndexChanged', es un procedimiento como cualquier otro, que no está vinculado a ningún evento porque te falta indicar la instrucción Handles
Private Sub ComboSegmento_SelectionChangeCommited(...) Handles ComboSegmento.SelectionChangeCommited
Handles permite indicar que el procedimiento está vinculado a un evento de control, ¿a cuál? pues al -o a los que- especificas luego de la instrucción Handles, en ese contexto el nombre del procedimiento podría ser cualquier otro, lo que importa es el vinculo del evento del control al procedimiento.
Private Sub MiProcedimiento(...) Handles ComboSegmento.SelectionChangeCommited
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.- Marcado como respuesta CopyRight Man viernes, 17 de marzo de 2017 15:30
Todas las respuestas
-
Puedes escribir código en el evento 'SelectionChangeCommitted' que se produce cuando se selecciona un elemento de la lista.
Private Sub ComboBox1_SelectionChangeCommitted(sender As Object, e As EventArgs) 'Activar/desactivar según el resultado de la expresión ComboBox2.Enabled = ComboBox1.Text = "C" End Sub
Imagino que inicializas la propiedad Enabled a False del objeto ComboBox2 (puede ser en el evento Load del formulario).
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
-
Hola william, muchas gracias por tu ayuda estoy intentando con el código que me proporcionaste, y me surgió una duda y creo me falto especificar, ya que los valores que tiene mi combobox1 los estoy llamando desde otra base mediante el datasource y el dato que recibo es el id por lo tanto en lugar de .text seria selectedvalue?
Perdona si no me doy a entender
-
Claro, tú decides de donde obtienes el valor que deseas comparar.
¿El valor a comparar es el que está contenido en la propiedad ValueMember? entonces debes utilizar la propiedad SelectedValue para obtener el valor a comparar.
ComboBox2.Enabled = ComboBox1.SelectedValue.ToString = "C"
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
Genial william y de esta otra manera también funcionaria?
Private Sub ComboCentro_SelectionChangeCommitted(ByVal sender As Object, ByVal e As EventArgs)
If ComboCentro.SelectedValue.ToString = "C" Then
ComboSub.Enabled = True
Else
ComboSub.Enabled = False
End If
End Sub -
Fíjate que tienes en la instrucción If la expresión (ComboCentro.SelectedValue.ToString = "C") que según resulte True o False ingresará al flujo normal o al Else. En el código proporcionado la expresión (ComboCentro.SelectedValue.ToString = "C") dará como resultado True o False, dicho valor resultante será asignado a la propiedad Enabled
ComboBox2.Enabled = ComboBox1.SelectedValue.ToString = "C" 'Si la evaluación resulta True entonces la expresión resulta como: ComboBox2.Enabled = True
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
-
¿La selección la realizas desplegando la lista y escogiendo un elemento? si es así no veo porque no se cumple la condición. De ser que la selección la realizas mediante código entonces debes de utilizar el evento 'SelectedIndexChanged' en lugar del evento 'SelectionChangeCommitted'.
-
Así es la selección la realizo desplegando una lista y escogiendo un elemento de la misma, ya lo intente de ambas maneras y el otro combo sigue sin des habilitarse te comparto esa porción de código tal vez este haciendo algo mal (muy seguramente)
Private Sub ComboSegmento_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
ComboSub.Enabled = ComboSegmento.SelectedValue.ToString = "C"
End SubAgradezco mucho el apoyo que me has brindado
-
Fíjate en la firma del procedimiento de tipo Sub 'ComboSegmento_SelectedIndexChanged', es un procedimiento como cualquier otro, que no está vinculado a ningún evento porque te falta indicar la instrucción Handles
Private Sub ComboSegmento_SelectionChangeCommited(...) Handles ComboSegmento.SelectionChangeCommited
Handles permite indicar que el procedimiento está vinculado a un evento de control, ¿a cuál? pues al -o a los que- especificas luego de la instrucción Handles, en ese contexto el nombre del procedimiento podría ser cualquier otro, lo que importa es el vinculo del evento del control al procedimiento.
Private Sub MiProcedimiento(...) Handles ComboSegmento.SelectionChangeCommited
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.- Marcado como respuesta CopyRight Man viernes, 17 de marzo de 2017 15:30
-