Título: Handles (VB.NET) Publicado por: abreu20011 en 26 Agosto 2011, 00:58 am Saludos :)
Estoy trabajando con el IDE SharpDevelop (con framework 3.5) y no sé si hay algo que hago mal (seguramente) o es que este IDE no vale para nada :S Cuando declaramos un evento en Visual Studio, tenemos el "Handles" para poder decidir si el evento es por click, dobleclick, etc... Simplemente pongo: Código: Sub Label1Click(sender As Object, e As EventArgs) Handles Label1.Click Msgbox("Hola") End Sub Y al pulsar sobre el botón, saltará el MsgBox. Pero si hago exactamente lo mismo en SharpDevelop me dice que "Handles" requiere de una clausula "WithEvents" :S ¿Alguien me podría ayudar? Necesito usar ese handles porque quiero que esto funcione por doble click y no por uno :S Gracias :) Título: Re: Handles (VB.NET) Publicado por: Keyen Night en 26 Agosto 2011, 19:56 pm No entendí cuál es el problema. Usa Handles XXX.DoubleClick.
Título: Re: Handles (VB.NET) Publicado por: abreu20011 en 26 Agosto 2011, 23:54 pm No entendí cuál es el problema. Usa Handles XXX.DoubleClick. No puedo :S Por eso lo digo, en este IDE me dice que necesito el WithEvents, y auque se lo hice (no se si bien): Código: WithEvents x As System.Windows.Forms.Label ya que label1 no lo reconoce... Sigue sin ir. Si le hago eso ultimo, depura y arranca, pero le da igual DoubleClick que Click que hola xD Y sin el WithEvents directamente ni depura :( Gracias :) Título: Re: Handles (VB.NET) Publicado por: abreu20011 en 27 Agosto 2011, 00:31 am Encontré la solución!!! XD
La explico por si alguien más le ocurre: El IDE SharpDevelop no tiene la barra de eventos de VisualStudio, por lo que cambiar de evento (Click, DobleClick, MouseMove, etc...) no se pueden hacer así como así :S Primero hay que ir al Designer del formulario en cuestión (en este ejemplo el MainForm) y ahí buscar la declaración del objeto (en este ejemplo un Label) Código: Me.label1.Location = New System.Drawing.Point(12, 9) Me.label1.Name = "label1" Me.label1.Size = New System.Drawing.Size(100, 23) Me.label1.TabIndex = 0 Me.label1.Text = "label1" Eso es lo que creara el Designer al crear un Label manualmente. Si pulsamos sobre él (para crear eventos) nos añadirá la siguiente linea: Código: AddHandler Me.label1.Click, AddressOf Me.Label1Click Tan sólo tenemos que cambiarlo asi: Código: AddHandler Me.label1.DoubleClick, AddressOf Me.Label1Click No he logrado que funcione con cosas como botón derecho o izquierdo, pero es un avance :D Dentro del propio VisualStudio te recomiendan no cambiar esto manualmente, pero lo cierto es que sino no sé como hacerlo (en SharpDevelop) y por otra parte, parece ir bien. No sé si es una la solución correcta, pero funciona :) Un saludo a todos Título: Re: Handles (VB.NET) Publicado por: Keyen Night en 27 Agosto 2011, 03:20 am Si es la solución correcta y con respecto a lo de segundo y primer click, el segundo parámetro del sub del evento MouseClick "e" lo puedes invocar como System.Windows.Forms.MouseEventArgs y de allí puedes obtener esa información.
|