CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Evento Click Sobre Del Combobox

(1/1)

karolarivero:
Antes de todo  saludos

Tengo un combobox que es activado por otro control, y este combobox activa otro control; es una cadena, es decir, cuando se llena correctamente un control este activa el combobox y le pasa el foco y el combobox hace lo mismo, pero con otro control, mi duda es la siguiente:

¿Existe alguna manera que al hacer click sobre cuaquiera de los items de un combobox este active otro control y le pase el foco?

hasta ahorita tengo el siguiente evento, que me hace una de las validaciones sobre el combobox:


--- Citar ---
Private Sub ComboBox1_KeyPress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) Handles ComboBox1.KeyPress


        ' Estos eventos se producen al darle enter al ComboBox


        If e.KeyChar = ChrW(Keys.Enter) Then
            If Me.ComboBox1.Text.Length = 0 Or ComboBox1.Text = "" Then
                If chequear = False Then
                    MsgBox("La información de este campo es obligatoria", MsgBoxStyle.Exclamation, "Aviso")
                    GroupBox3.Enabled = False
                Else
                    chequear = False
                End If
                Me.ComboBox1.Focus()
            Else
                GroupBox3.Enabled = True
                Button1.Enabled = False
                CheckBox1.Focus()
            End If
        End If

    End Sub


--- Fin de la cita ---

Este hace las validaciones cuando el usuario presiona enter, el problema se presenta cuando el usuario hace click sobre uno de los items del combobox.


En caso de que haga click sobre una de los items, lo ideal seria usar el evento click pero este desplega la lista que contiene el combobox tan rapido que no da chance a que el usuario escoja un subitems...la idea es que al hacer click en uno de los items se active el siguiente control y se le pase el focus. Alguna suguerencia?


Saludos, gracias por su atencion...

Cajami:
Hola, pero porque no usar el evento SelectedIndexChanged del combobox, cuando el usuario seleccione un item del control se pasa el foco a otro control:


--- Código: Text ---    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged        Me.Button1.Focus()    End Sub 
claro lo que implica esto es que el usuario no puede seleccionar algun item del combobox con el teclado ia que llegando al primer ittem se iria el foco al otro control, espero te sirva de algo, nos vemos :hola:

karolarivero:
Use ese evento, pero  no me resuelve pues la idea es que al tener el combobox el foco el usuario se pueda mover con las flechas del teclado escojer su opcion darle enter y activar  un control segun la seleccion que hizo, esta validacion me la resuelve el evento KeyPress, ahora si el control recibe el foco pero el usuario no va usar el teclado si no el mouse es donde se complica el asunto, use el evento click y el SelectedIndexChanged junto al keypress y pasa lo que me dices al seleccionar un items pasa inmediatamente el foco al control relacionado con el mismo.... :(


Saludos...

cuajoa:
la idea que se me ocurrio a mi es que podes utilizar una nueva variabel booleana, llamarla apretoTecla e inicializarla en true, y luego en el evento clic del combo ponerle que se cambie a false y en el evento SelectedIndexChanged haces algo asi:

--- Código: Text ---     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged        If Not apretoTecla Then            GroupBox3.Enabled = True            Button1.Enabled = False            CheckBox1.Focus()            apretoTecla = True        End If    End Sub  

Yo lo probe y andubo, pero n ose si te sirve asi com oesta, pero se le puede encontar la vuelta.

Saludos

karolarivero:
Hola, Opte por hacer un evento llamado:


--- Código: Text --- '------------------------------------------------- Evento KeyDown -------------------------    Private Sub ComboBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyDown               If e.KeyCode = Keys.Down Or e.KeyCode = Keys.Up Or e.KeyCode = Keys.Left Or e.KeyCode = Keys.Right Then            flecha = True        End If     End Sub   
Y entonces valide con el evento keypress y SelectedIndexChanged, pero en este ultimo coloque asi:


--- Código: Text --- Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged         If Not flecha Then             If ComboBox1.Text.Length = 0 Then                If chequear = False Then                    MsgBox("La información de este campo es obligatoria", MsgBoxStyle.Exclamation, "Aviso")                     GroupBox3.Enabled = False                    BotonGuardar.Enabled = False                    GroupBox5.Enabled = False                     For j = 1 To CantidadTrigo                        If Not (VectorTrigo(j) = "") Then                            Button1.Enabled = True                            j = CantidadTrigo                        End If                    Next j '....       end sub    
Osea, si estaba trabajando con las flechas de control el evento SelectedIndexChanged no se iba ejecutar...

Gracias por la pista...

Saludos  :hola:

Navegación

[0] Índice de Mensajes

Ir a la versión completa