Visual Basic - Posicionarme sobre un boton

Life is soft - evento anual de software empresarial
 
Vista:

Posicionarme sobre un boton

Publicado por Jorge (67 intervenciones) el 07/04/2006 22:24:17
Hola amigos de la web
Quisiera saber si se puede poner una leyenda al posicionarse sobre un boton sin presionarlo, solamente poner el cursor encima, que instruccion se puede poner

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Posicionarme sobre un boton

Publicado por nuevo (15 intervenciones) el 07/04/2006 23:10:57
para estas preguntas tan dificles tienes que irte al foro de visual avancado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Posicionarme sobre un boton

Publicado por Joan Merú (21 intervenciones) el 07/04/2006 23:11:28
Una forma de hacerlo y creo la mas facil, es utilizar la propiedad MouseMove del boton cuando el cursor este sobre este y la misma propiedad pero en el contenedor del boton sea el form o un picturebox u otro boton, para cuando el cursor salga del boton, asi:

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Caption = "Tengo el mouse encima"
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Caption = "Aceptar"
End Sub

espero te sirva esto para lo que quieres hacer...suerte...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Posicionarme sobre un boton

Publicado por SemperFIMXL (74 intervenciones) el 08/04/2006 02:11:27
Aunque si puede usarse el evento MouseMove del objeto para hacer que aparezca una "leyenda" cuando el mouse este sobre el objeto de que se trate, el ejemplo no es muy valido que digamos, pues si el Caption del Command es, por ejemplo, "Iniciar", al pasar el mouse sobre el boton este mostraria la leyenda "Tengo el Mouse Encima" o la que se pusiera, en lugar de "Iniciar", lo que confundiria al usuario ...

La forma mas sencilla, pre-integrada en VB, es usar la propiedad .ToolTipText. Simplemente pones la leyenda que quieras en esta propiedad. Al poner el mouse sobre el objeto en cuestion, 1 segundo aprox., el ToolTipText se desplegara, y se ocultara al quitar el mouse del objeto...

Por supuesto, esto tiene el "inconveniente" de que el mouse debe estar quieto sobre el objeto cuando menos por un segundo. Pero por otro lado solo tienes que poner la leyenda que quieras en el .ToolTipText en tiempo de diseño (o durante la ejecucion si lo deseas), y te olvidas de codigo adicional.

Otra forma de mostrar una leyenda que aparezca en cuanto el mouse toca el objeto (sin tiempo de espera) , es efectivamente, usar el evento MouseMove del objeto en combinacion con el MouseMove del Form, pero esto siginifica codigo adicional en cada objeto en el que quieras usarlo..

Aqui va el ejemplo probado ...

'''''''''

Dim labelToolTip As Label

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not labelToolTip.Visible Then
labelToolTip.Caption = "Esta Es Ayuda Para Usuario !"
labelToolTip.Width = Me.TextWidth(labelToolTip.Caption) + 50
labelToolTip.Height = Me.TextHeight(labelToolTip.Caption) + 50
labelToolTip.Top = Me.Command1.Top + Me.Command1.Height
labelToolTip.Left = Me.Command1.Left
labelToolTip.Visible = True
End If
End Sub

Private Sub Form_Load()
Set labelToolTip = Me.Controls.Add("VB.Label", "labelAyuda")
labelToolTip.Alignment = vbCenter
labelToolTip.BorderStyle = vbFixedSingle
labelToolTip.BackStyle = 1
labelToolTip.Appearance = 0
labelToolTip.BackColor = &HE0FFFF

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If labelToolTip.Visible Then
labelToolTip.Visible = False
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
Me.Controls.Remove labelToolTip
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cuesta mucho contestar...???

Publicado por pepe (14 intervenciones) el 08/04/2006 02:25:31
Aprende como se contesta españolito de córdoba.... tendrás mil y un títulos, solo te falta uno de "COMO VIVIR EN SOCIEDAD".... acaso los españolitos son igual de tu de pateticos... lo dudo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Posicionarme sobre un boton

Publicado por Joan Merú (21 intervenciones) el 08/04/2006 15:47:15
Claro que si, esta "leyenda" confundiria al usuario, tienes razon SemperFIMXL, solo es una forma de cacharrear con las opciones, pero con lo que dices del tooltiptext, seme ocurre una manera de que se muestre una etiqueta sin el retardo del TTT, que tal si ponemos un Label.visible=false cuando el mouse pase por el boton la propiedad la cambiamos a true, en el evento mousemove del boton y cuando salga la cambiamos a false en el evento mousemove del cantenedor asi podemos poner una etiqueta TTT, mas personalizada,...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Posicionarme sobre un boton

Publicado por SemperFiMXL (74 intervenciones) el 09/04/2006 09:31:21
Joan Merú...

Lo que mencionas sobre la etiqueta (Label) es exactamente lo que hace el codigo de ejemplo que puse en mi mensaje, solo que la etiqueta se crea en tiempo de ejecucion (en el form_load), y se le asignan algunas propiedades para hacerla lo mas parecida posible al ToolTipText.

Luego en el evento MouseMove del objeto deseado (el Command1 en este caso), si la etiqueta no esta visible en ese control, se le asignan a la misma el texto, el alto y ancho y la posicion deseados, haciendola visible para el usuario.

Cuando el mouse sale del objeto (Command1), en el evento MouseMove de la Form (el contenedor en este ejemplo), si la etiqueta esta visible simplemente se cambia esta propiedad a false.

Todo este codigo adicional, con tal de no esperar 1 segundo a que se muestra el ToolTipText, es a lo que me referia en mi mensaje....

Vale la pena? Cada quien sabra ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar