Habilitar controles atravez del evento doble click

13/01/2006 - 15:29 por Mauricio | Informe spam
Saludos a todos

Necesito que me ayuden ya que me surgió un problema que no he podido
resolverlo..

1. Tengo un procedimiento en el cual mando a deshabilitar todos los
controles del formulario (enabled = false)

2. Presento datos en algunos controles, y necesito que al hacer doble click
se habilite el control para poder modicar los datos.

3. El evento esta creado para cada control, pero en la ejecución al momento
de hacer doble click no hace nada ya que el estado del control esta
inicialmente en enabled = false.

De antemano le gracias

Att. Mauricio

Preguntas similare

Leer las respuestas

#11 Leonardo Azpurua [mvp vb]
14/01/2006 - 17:43 | Informe spam
"Mauricio" escribió en el mensaje
news:
Gracias por tu comentario Enrrique

Pero yo he visto aplicaciones que puedes dar coordenadas y ubicas el
control
respectivo y si das doble click se activa el control, tengo la idea que
eso
talvez se pueda manejar a traves de un timer o algo asi..

En visual c++ puedes hacer este tipo de procedimientos..

Espero que me puedan ayudar ya no he puedo solucionar este problema

de todas maneras gracias Enrrique.



Hola, Mauricio:

O no entiendo lo que dices, o no entiendes lo que quieres :-)

Puede que exista alguna manera esotérica, complicada y difícil de procesar
un Doble Click en un control inactivo (Enrique encontró una), pero por lo
general, una solución esotérica, complicada y difícil es la peor solución
posible.

Las razones para activar un control pueden ser que la lógica del programa
requiera que el control sea activado o bien que el usuario indique que desea
activarlo. En el primer caso, simplemente lo activas; en el segundo debes
proveer un control adicional (o un Label, como te recomienda Robernet), que
el usuario pulsará indicando que desea activar el control.

Sin embargo:

Los eventos del mouse (Move, Down, Up) sobre los controles inactivos son
recibidos por la forma.

Con el metodo siguiente puedes detectar un DobleClick sobre un control
inactivo:

Private MouseX, MouseY As Long

Private Sub laForma_MouseDown(ByVal Sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
MouseX = e.X
MouseY = e.Y
End Sub

Private Sub laForma_DoubleClick(...) Handles MyBase.DoubleClick
For each c As Control In Me.Controls
If c.Left <= MouseX AndAlso c.Left + c.Width >= MouseX _
AndAlso c.Top <= MouseY AndAlso c.Top + c.Height Then
' tienes doble click en [c]
MsgBox("Hiciste doble click en " & c.Name)
Return
End If
Next
End If

Pero es como reinventar la rueda, y como no sea para ayudar al pobre usuario
a desarrollar un síndrome del túnel carpiano por el uso inevitable del
mouse, no me imagino para qué más pueda servir.

En fin...

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