Abrir ComboBox

10/07/2003 - 15:39 por Carlos Antonio | Informe spam
¡Hola, amigos y amigas!

Estoy usando esta API para desplegar un Combo:

Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam
As Long) As Long

Private Sub Command1_Click()
Dim Resp As Long
Resp = SendMessageLong(Combo1.hwnd, &H14F, True, 0)
End Sub

Funciona muy bien, hasta que deseo hacer mi selección... me obliga a usar el
'mouse' y no puedo usar las flechas del teclado para navergar el combo y
hacer mi selección. Aparentemente se ejecuta el evento "Click" cada vez que
presiono una flecha del teclado. Pensaba que este evento sólo se ejcutaba
con la tecla "Enter" y/o el Click del Mouse.

¿alguna sugerencia?

Saludos,

:o)
Carlos Antonio

Guía de netiquette del foro:
http://perso.wanadoo.es/rubenvigon/foro

Preguntas similare

Leer las respuestas

#1 Carlos Antonio
10/07/2003 - 15:59 | Informe spam
Una pena... La idea de abrir el combo era para que el usuario no tuviera
que agarrar el mouse y luego soltarlo, sino hacerlo todo con el teclado
(manías de los clientes... tu sabes...)... Bueno me inventaré otra cosa...
quizás colocando el codigo en otro evento Gracias Rubén...

saludos,


Carlos Antonio

Guía de netiquette del foro:
http://perso.wanadoo.es/rubenvigon/foro

"Rubén Vigón" wrote in message
news:uaT#$
> Pensaba que este evento sólo se ejcutaba
> con la tecla "Enter" y/o el Click del Mouse.

No, también se produce el evento al moverte por los elementos del ComboBox


mediante las teclas de
dirección

Según MSDN:

[...] Click (Evento)
Para un control, este evento ocurre cuando el usuario:
[...] Selecciona un elemento de un control ComboBox o ListBox, ya sea


presionando las teclas de
dirección o haciendo clic con el botón del mouse.

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic

(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro


Respuesta Responder a este mensaje
#2 Hernán
10/07/2003 - 17:24 | Informe spam
"Carlos Antonio" <carlos_arroba_bmjfoodspr.com> escribía:

¡Hola, amigos y amigas!



[...]
Funciona muy bien, hasta que deseo hacer mi selección... me obliga a usar el
'mouse' y no puedo usar las flechas del teclado para navergar el combo y
hacer mi selección. Aparentemente se ejecuta el evento "Click" cada vez que
presiono una flecha del teclado. Pensaba que este evento sólo se ejcutaba
con la tecla "Enter" y/o el Click del Mouse.

¿alguna sugerencia?




Quién se queda con el input de teclado ¿el combo o el botón?
Digo, si el combo es quien lee el teclado, no deberías tener problemas...

Saludos,

:o)



Hernán (27)
quilmes.ar
Respuesta Responder a este mensaje
#3 Sashka
10/07/2003 - 21:06 | Informe spam
En realidad .. si se puede... sólo que hay que programar un poco más... por
ejemplo yo tengo algo así:

Dim Noclick as boolean ' variable a nivel formulario.. que por defecto
tiene valor False

y en el combo esto:

Private Sub cboMatpr_Click()
If noclick = True Then Me.txtcantScrap.SetFocus
End Sub

Private Sub cboMatpr_GotFocus()
If noclick = False Then SendKeys "{F4}"
noclick = True
End Sub

Private Sub cboMatpr_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo errlist
If KeyCode = 40 Then 'Flecha abajo
noclick = False
cboMatpr.ListIndex = cboMatpr.ListIndex + 1
noclick = True
KeyCode = 0
ElseIf KeyCode = 38 Then 'flecha arriba
noclick = False
cboMatpr.ListIndex = cboMatpr.ListIndex + 1
noclick = True
KeyCode = 0
End If
Exit Sub
errlist:
cboMatpr.ListIndex = 0
Resume Next
End Sub


Sashka

"Carlos Antonio" <carlos_arroba_bmjfoodspr.com> escribió en el mensaje
news:#
Una pena... La idea de abrir el combo era para que el usuario no tuviera
que agarrar el mouse y luego soltarlo, sino hacerlo todo con el teclado
(manías de los clientes... tu sabes...)... Bueno me inventaré otra cosa...
quizás colocando el codigo en otro evento Gracias Rubén...

saludos,


Carlos Antonio

Guía de netiquette del foro:
http://perso.wanadoo.es/rubenvigon/foro

"Rubén Vigón" wrote in message
news:uaT#$
> > Pensaba que este evento sólo se ejcutaba
> > con la tecla "Enter" y/o el Click del Mouse.
>
> No, también se produce el evento al moverte por los elementos del


ComboBox
mediante las teclas de
> dirección
>
> Según MSDN:
>
> [...] Click (Evento)
> Para un control, este evento ocurre cuando el usuario:
> [...] Selecciona un elemento de un control ComboBox o ListBox, ya sea
presionando las teclas de
> dirección o haciendo clic con el botón del mouse.
>
> Un saludo!
>
> Rubén Vigón
> Microsoft MVP Visual Basic
>
> (Guía de buen uso del foro)
> http://perso.wanadoo.es/rubenvigon/foro
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida