[SOLUCIONADO] Un ToolTip me está dando por...

Iniciado por Eleкtro, 24 Marzo 2013, 00:55 AM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Perdón, quería postear en .NET y me equivoqué, ¿Me lo mueven ?, sorry >:D






Bueno pues en este sub manejo un numericupdown y un combobox

Lo que intento es, que al escribir un número mayor de "X" en el numericupdown, mostrar una pequeña alerta para indicar que no se puede aumentar el valor.

El problema es que, después de alertar una primera vez, el tooltip sigue mostrando las alertas aunque la condición no se cumpla:



El code:
Código (vbnet) [Seleccionar]
   ' NumericUpDown Time / ComboBox Time Measure
   Private Sub ComboBox_Measure_SelectedIndexChanged(sender As Object, e As EventArgs) Handles _
       ComboBox_Measure.SelectedIndexChanged, _
       NumericUpDown_Time.ValueChanged

       Select Case ComboBox_Measure.SelectedIndex
           Case 0
               ' Seconds
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, S, MS))
               Time_Measure = S
           Case 1
               ' Minutes
               If NumericUpDown_Time.Value >= 35793 Then NumericUpDown_Time.Value = 35792 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, M, MS))
               Time_Measure = M
           Case 2
               ' Hours
               If NumericUpDown_Time.Value >= 597 Then NumericUpDown_Time.Value = 596 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS))
               Time_Measure = H
           Case 3
               ' Days
               If NumericUpDown_Time.Value >= 25 Then NumericUpDown_Time.Value = 24 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 24
               Time_Measure = H
           Case 4
               ' Weeks
               If NumericUpDown_Time.Value >= 4 Then NumericUpDown_Time.Value = 3 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 168
               Time_Measure = H
       End Select

       Exit Sub

ToolTip:
       'ToolTip1.Active = True
       'ToolTip1.SetToolTip(Me.NumericUpDown_Time, "Max value")
       ToolTip1.Show("Max value", Me.NumericUpDown_Time, 1500)
       'ToolTip1.Hide(Me.NumericUpDown_Time)
       'ToolTip1.Active = False

   End Sub








$Edu$

Mmm esos Goto no quedan muy bonito.

Pone  ToolTip1.Hide(Me.NumericUpDown_Time) antes del Select case.

Si antes estaba oculto, seguira oculto, si antes tenia un mensaje, se ocultara y luego en los ifs vera si se muestra de nuevo o no, pero esa decision la hace mas rapido que lo que pestañamos por lo que es lo mismo xD

Eleкtro

Cita de: $Edu$ en 24 Marzo 2013, 01:18 AM
Pone  ToolTip1.Hide(Me.NumericUpDown_Time) antes del Select case.

nada, no me sirvió xD








Pablo Videla

Hola!

Bueno no estoy muy seguro, porque no conozco este lenguaje como corresponde (Como ya te lo he dicho en otras ocasiones) Pero me di cuenta en que en todos los case, vas a Tooltip si o si, y si no me equivoco ese tooltip lanza la alerta? Porque cada vez que vayas a tooltip la alerta se mostrara sin ninguna condicion porque le estas diciendo que vayas ahi en el case.

Bueno es lo que entendi, pero puedo estar equivocado  :xD

Saludos

Eleкtro

#4
No te preocupes DonVidela, cualquier comentario es bien recibido.

Pero no es como comentas, sólo llamo al tooltip cuando se cumple la condición, y antes de la etiqueta del ToolTip está la instrucción "Exit Sub" precísamente para que no suceda lo que comentas.

En resumen ese tooltip no se muestra siempre, se muestra cuando una de las condiciones se cumple (Lo he comprobado, hasta aquí todo bien), el problema es que después de mostrarse por primera vez, se sigue mostrando SIEMPRE aunque no se den las condiciones, ya puedo tratar de ocultarlo o desactivarlo o "disposarlo", pero no conseguiré nada porque se sigue mostrando cuando coloco el puntero del mouse encima del numericupdown, dándome por cu... xD

>:(

Un saludo!








$Edu$

Yo sigo creyendo que tengo razon xD
Debes tener algun error que no nos estas contando, cuando dices "cuando coloco el puntero del mouse encima del numericupdown" no es otro evento ese? no tendras algo ahi? :S

Eleкtro

#6
@$Edu$

Si pregunto es porque no puedo encontrar el fallo o el error así que no puedo estar 100% seguro, pero por otro lado te aseguro que no tengo ningún evento asociado al ToolTip u otros eventos a esos controles ni nada extraño,
el único trozo de código donde uso el Tooltip es el que he mostrado, una sola línea xD.

Si el ToolTip sale cuando paso el mouse por el control, es porque lo especifico como parámetro aquí:
Código (vbnet) [Seleccionar]
ToolTip1.Show("Max value", Me.NumericUpDown_Time, 1500)

EDITO: El ToolTip lo agrego desde el designer, y los atributos del ToolTip son los que se usan por defecto (Aunque he probado a modificarlos..).

:(








$Edu$

Pero esa linea que pones, se tiene que generar en el evento que has dejado, y ese evento no es cuando pasas el mouse por arriba, es cuando haces click, o me equivoco? Con solo pasar el mouse no tendria que cambiar nada, no se ejecutaria nada.

Eleкtro

#8
Cita de: $Edu$ en 24 Marzo 2013, 16:19 PM
Pero esa linea que pones, se tiene que generar en el evento que has dejado, y ese evento no es cuando pasas el mouse por arriba, es cuando haces click, o me equivoco? Con solo pasar el mouse no tendria que cambiar nada, no se ejecutaria nada.

Ahí está el problema, yo provoco que aparezca el tooltip sobre el control cuando de alguna manera el número séa mayor de "X", ya séa haciendo click o escribiendo dentro, pero luego ya no debería mostrarse más...

De todas formas ya está, me sirvió la idea que tuviste Edu, usando otro método antes del Case:
ToolTip1.Show("", Me.NumericUpDown_Time, 0)
No sé si eso será muy correcto, pero desde luego ahora funciona como debe, no se sigue mostrando el tooltip.


Gracias

Slaudos.

RECTIFICO, SE SIGUE MOSTRANDO, YA NO SÉ QUE DEBO HACER.








$Edu$

El metodo Hide pensaba que ocultaba pero solo oculta si se estaba mostrando pero despues vuelve a aparecer, por eso no andaba.

Cambia eso que has puesto por ToolTip1.Active = false, es decir antes del Select Case.

Y en la etiqueta ToolTip: tendras que descomentar lo de ToolTip1.Active = True para que se vuelva a activar.