Código:
Con esto solo hago una línea haciendo click en un lado del panel y click en otro.Dim PenPoint As Pen Dim initialPos As Point Dim g As Graphics Dim clickNumber = 0 Private Sub PictureBox1 _MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown If clickNumber = 0 Then initialPos = e.Location clickNumber += 1 ElseIf clickNumber = 1 Then g.DrawLine(PenPoint, initialPos , e.Location) clickNumber = 0 End If End Sub
Pero yo preciso hacer mas cosas que éstas. Empezando que necesito hacer una línea con una flecha en un extremo. Se que esto lo puedo hacer seteando la propiedad EndCap del objeto Pen (o StartCap si quisiera la flecha al iniciar la linea), pero el problema es que la flecha que me dibuja es muy pequeña, prácticamente no se distingue con un grosor de linea de 1 o 2 que es lo que preciso. Otra cosa es poder trasladar la linea dibujada de un lado a otro haciando un click para seleccionar la linea y luego hacer otro clik y mantenerlo presionado mientras trasladamos la linea con el mouse hacia donde querramos además de poder alargar o reducir su tamaño. Otro punto es poder darle distintas formas a la línia. Por ejemplo necesito poder dibujar lineas punteadas, línias dobles, lines con ondulaciones, etc.
La solución puede ser en VB o en c#.
Bueno, dejo planteada la duda a la espera de alguien que pueda darme una mano. Desde ya muchas gracias.