Hola!
De nuevo os voy a dar la lata con el tema de los menús de VB.
Alguien sabe cómo hacer que un menú contextual (popup menú) no desaparezca al hacer click en alguno de sus ítems?
| |||
Re: PopUp Menú no desaparezca... porque no le pasas visible = true en el evento click del menú? No se si te servirá. |
| ||||
Re: PopUp Menú no desaparezca... merci extrem_bcn pero no me sirve... el popupmenu no tiene propiedad visible.... (es el menú en si mismo que lo tiene pero el popup no). También he probado de, al final del evento click de un item del menú volver a invocar el Me.PopUpMenu NombreMenu pero ... tampoco ...
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| |||
Re: PopUp Menú no desaparezca... La verdad es que no sé si eso se puede hacer, pero una posible solución sería crearte (simular) tu propio popup con p.ej. un control ListBox invisible y hacerlo visible al pulsar el botón derecho del ratón. |
| ||||
Re: PopUp Menú no desaparezca... ...podría ser una opción pero ... no sé,.. me gusta el aspecto del popup y con un ListBox ... otra forma sería hacerlo con un formulario enterito simulando el popup pero... se me complica mucho el tema.... :_(
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| |||
Re: PopUp Menú no desaparezca... por cierto, para que quieres hacer eso? (es que no le veo mucho sentido, que quizá si lo tiene eh!) quizá sabiendo eso a alguien se le puede ocurrir alguna idea. |
| ||||
Re: PopUp Menú no desaparezca... Cita: Sí, de hecho eso sería bastante útil para encontrarle una respuesta.La única idea q' se me ocurre es hacer que un Timer compruebe si se muestra el PopupMenu, y si no que lo muestre. (Infelizmente, se me hace difícil comprobarlo pues no tengo VB).
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Re: PopUp Menú no desaparezca... Cita: ¡No entiendo absolutamente nada!¿entonces? |
| ||||
Re: PopUp Menú no desaparezca... Hola,pues la unica que se me ocurre asi de una ,es que hagas algo asi:
Código:
cambiale el nombre al menu y las cordenadas del mismo y listo,al hacer clic te lo va a seguir mostrando por 100 veces.podes cambiarle el for por otra cosa y que nunca se pueda ocultar...Private Sub mnuGuardar_Click() Dim i As Integer If mnuFicheros.Visible = True Then For i = 1 To 100 Me.PopupMenu mnuFicheros, , 0, 0 Next End If End Sub saludos.
__________________ " Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein |
| ||||
Re: PopUp Menú no desaparezca... Gracias a todos (y perdón por no estar en línea antes para responder a lo que me pedíais) Seba123neo, has probado ese código? Poque yo probé algo parecido (sin bucle) y no funciona. La razón es la siguiente: El PopUp menú, tiene una opción de refresco de una serie de propiedades que se muestran a talle de información en el mismo popup. Quiero que cuando el usuario pulse el botón de 'REFRESCAR', puedan ir viendo cómo van evolucionando los valores de esas propiedades sin tener que volver a 'clickear' para mostrar otra vez el pop up. Espero que eso os sirva. Thanx!
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| ||||
Re: PopUp Menú no desaparezca... Cita: La idea que se me ocurre, sería que en el lugar donde colocas el PopupMenu (quizás en el evento MouseDown), coloques un Do, Loop, y que cada vez que se salga haga una comprobación si se hizo click en Refrescar, para así volver a mostrarlo. Sería algo así como esto:
Iniciado por Laforge ![]() Gracias a todos (y perdón por no estar en línea antes para responder a lo que me pedíais) Seba123neo, has probado ese código? Poque yo probé algo parecido (sin bucle) y no funciona. La razón es la siguiente: El PopUp menú, tiene una opción de refresco de una serie de propiedades que se muestran a talle de información en el mismo popup. Quiero que cuando el usuario pulse el botón de 'REFRESCAR', puedan ir viendo cómo van evolucionando los valores de esas propiedades sin tener que volver a 'clickear' para mostrar otra vez el pop up. Espero que eso os sirva. Thanx!
Código:
Sub Form_MouseDown() Do mnuName.Tag = "" PopupMenu mnuName Loop While mnuName.Tag = "REFRESCAR" End Sub Sub mnuRefrescar_Click() mnuName.Tag = "REFRESCAR" End Sub
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Re: PopUp Menú no desaparezca... nop! Los clicks en los items de un popup menú no se reflejan en el form_mousedown. Buen intento!!
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| ||||
![]() Pero así como te puse en el código puedes usar la Propiedad Tag del Menú para saber si se hizo Click en él o no... (P.S.: lo unico que no sé, y no puedo comprobar, es si antes de hacer Click en un Ítem del PopupMenu, ya se salta a la sgte. línea).
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Re: PopUp Menú no desaparezca... David el Grande He estado probando con la opción del Timer... pero no acaba de 'satisfacerme'.
Código:
El interval del Timer lo tengo a 200 milisPrivate Sub MnuRefrescar_Click() Timer1.Enabled=true 'procedimiento de refresco 1 Timer1.enabled=true 'procedimiento de refresco 2 .... End Sub Private Sub Timer1_Timer() Me.PopupMenu MnuOpcion End Sub Lo que pasa es que como el popup se muestra según las coordenadas del cursor... mientras mueves el cursor el popup te 'acompaña'.... ... sigo buscando ...
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| ||||
![]() Si quieres hacerlo con el Timer debes guardar las coordenadas X e Y en algún lugar... Pero, creo que el otro código que puse te servirá, no sé si lo has entendido, sería: Evento MouseDown o cualquier otro:
Código:
Evento Click del Menú Refrescar:Do mnuName.Tag = "" PopupMenu mnuName,,X,Y 'Se supone que no saltará a la línea sgte. mientras no se haga Click en un Item Loop While mnuName.Tag = "REFRESCAR"
Código:
Pues se supone entonces, que si se hace Click en el Menú Refrescar, el Tag tendría el valor "REFRESCAR" con lo que el bucle mostrará nuevamente el Menú, pero si se hace Click en cualquier otro Menú, el valor será Nulo, con lo que terminará el Bucle... mnuName.Tag = "REFRESCAR" 'Resto del Código ![]()
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. Última edición por David; 18/03/2008 a las 10:42 |
| ||||
Re: PopUp Menú no desaparezca... Sí sí, te entendí pero después de hacer un click en el mnurefrescar, aunque tenga el TAG en 'REFRESCAR' que evento se disparará automáticamente para que interprete ese TAG?
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| ||||
![]() Cita: El bucle que dejaste en el MouseDown... ![]()
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Re: PopUp Menú no desaparezca... Cita: ya pero cuando lanzas el popup no dejas nada parado (no es como un form.show 1). Luego... no me sirve.Además la ejecución el popup menú la tengo de la siguiente forma:
Código:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim msg As Long msg = X / Screen.TwipsPerPixelX Select Case msg Case WM_LBUTTONDOWN Case WM_LBUTTONUP Me.PopupMenu MnuOpcion Case WM_LBUTTONDBLCLK Case WM_RBUTTONDOWN Case WM_RBUTTONUP Me.PopupMenu MnuOpcion Case WM_RBUTTONDBLCLK End Select End Sub
__________________ Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega. No hay vida después de MySQL |
| |||
Re: PopUp Menú no desaparezca... La verdad es que no tiene mucho sentido visualizar un PoPup y queno desaparezca, aunque es criterio de cada quien, lo que dice avellaneda es una posible solución, y si quieres que tus listas se vean igual que un PoPup, puedes diseñar bien tu lista. |