Principales respuestas
Mover botones en tiempo de ejecucion

Pregunta
-
Buenas tardes a todos. Revisando el foro encontre un codigo para mover controles, el siguiente
Public _x, _y As Integer Public Movimiento As Boolean Public CantBotones As Integer Public boton As Button Private Sub Control_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) _x = e.X _y = e.Y If e.Button = MouseButtons.Right Then Movimiento = True End If If e.Button = MouseButtons.Left Then 'boton = botonTocado Form2.ShowDialog() End If End Sub Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) If Movimiento Then CType(sender, Control).Left = e.X + CType(sender, Control).Left - _x CType(sender, Control).Top = e.Y + CType(sender, Control).Top - _y End If End Sub Private Sub Control_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Movimiento = False End Sub Public Sub AsignarEventos(ByVal _Controles As Control) Dim Controles As Control For Each Controles In _Controles.Controls AddHandler Controles.MouseDown, AddressOf Control_MouseDown AddHandler Controles.MouseMove, AddressOf Control_MouseMove AddHandler Controles.MouseUp, AddressOf Control_MouseUp AsignarEventos(Controles) Next End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AsignarEventos(Me) end sub
En la parte comentada quisiera guardar el boton que fue tocado, alguna solucion? idea?
desde ya muchas gracias un saludo
Respuestas
-
Justo lo que necesitaba, muchas gracias
- Marcado como respuesta Enrique M. MontejoModerator sábado, 27 de agosto de 2016 10:16
Todas las respuestas
-
Hola JoniJeJ,
Guardar a dónde? Qué guardará ? El nombre, el control, el texto? ....
Sólo tendrías que obtener el control que produjo en evento mediante el sender.
Un ejemplo sencillo : Guardo el nombre del botón en una lista.
'Guardará los nombres de los botones Dim botones As List(Of String) Private Sub Control_MouseDown(ByVal sender As System.Obj..... _x = e.X _y = e.Y If e.Button = MouseButtons.Right Then Movimiento = True End If If e.Button = MouseButtons.Left Then Dim btn As Button = TryCast(sender, Button) 'Agrego el nombre del control a la lista botones.Add(btn.Name) Form2.ShowDialog() End If End Sub
Saludos.
JC NaupaCrispín
Lima - Perú
La magia no existe, la programación SI- Propuesto como respuesta Willams Morales sábado, 27 de agosto de 2016 0:19
-
Justo lo que necesitaba, muchas gracias
- Marcado como respuesta Enrique M. MontejoModerator sábado, 27 de agosto de 2016 10:16
-