Where is the picture? In a PictureBox that is on the form? If so, then
you have to place the Line control INSIDE of the PictureBox. There are
two ways to do this.
First method... after placing the Line control on the form by
double-clicking it from the ToolBox, cut it from the Form by selecting
it (if not already selected) and then pressing Ctrl+X, then select the
PictureBox and paste the Line control into it by pressing Ctrl+V.
Second method... don't double-click the Line control in the first place;
instead, click on it once in the ToolBox to select it, then click and
drag the mouse directly in the PictureBox to place the Line control
directly within the PictureBox.
Rick - MVP
Ive to draw a line on a picture i used this code:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
x1 = z.X
y1 = z.Y
lbl3 = "x1: " & x1
lbl4 = "y1: " & y1
With Line1
.Visible = True
.x1 = X
.y1 = Y
.x2 = X
.y2 = Y
Drawing = True
End With
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Drawing Then
With Line1
.x2 = X
.y2 = Y
End With
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As
Single, Y As Single)
x2 = z.X
y2 = z.Y
lbl5 = "x2: " & x2
lbl6 = "y2: " & y2
Drawing = False
With Line1
Me.Line (.x1, .y1)-(.x2, .y2)
.Visible = False
End With
End Sub
But i doesnt draw on the picture, only on the form??/
Can someone help me with this??
Thx in advance
Dennis
Thank you very much Rick for the usefull reply. But i'v got another
question. When drawing the line, you cant see the line untill you
release the mouse button. I want to see the line when im drawing!!
Im using the following code:
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X
As Single, Y As Single)
x1 = z.X
y1 = z.Y
lbl3 = "x1: " & x1
lbl4 = "y1: " & y1
With Line1
.Visible = True
.x1 = X
.y1 = Y
.x2 = X
.y2 = Y
Drawing = True
End With
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
If Drawing Then
With Line1
.x2 = X
.y2 = Y
End With
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As
Single, Y As Single)
x2 = z.X
y2 = z.Y
'lbl5 = "x2: " & x2
'lbl6 = "y2: " & y2
Drawing = False
With Line1
Picture1.Line (.x1, .y1)-(.x2, .y2), vbGreen
.Visible = False
End With
End Sub
Can someone help me with this??
Dennis
I couldn't run your code because I don't know what "z" is (although it
apparently has an X and Y property). Anyway, below is some code that
will show the line as you draw it. It uses a Line control that is IN the
PictureBox (use one of the two previously methods I posted to place it
inside). You can copy/paste it exactly as is, although note that I used
line continuations for the Sub's event declarations in order to avoid
long line wrapping in your newsreader (you can change them back to
single lines if you wish).
Rick - MVP
Dim LineIsActive As Boolean
Private Sub Picture1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
With Line1
If Not .Visible Then .Visible = True
LineIsActive = True
.X1 = X
.Y1 = Y
.X2 = X
.Y2 = Y
End With
End Sub
Private Sub Picture1_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If LineIsActive Then
With Line1
.X2 = X
.Y2 = Y
End With
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
LineIsActive = False
With Line1
.X2 = X
.Y2 = Y
End With
End Sub