MarkDuncan_74
Newcomer
- Joined
- Oct 14, 2004
- Messages
- 3
Hi,
I'm trying to create an image editor similar to paint to include in an app. I've got a scrollable panel with a picturebox on it. Around the picturebox are 8 5x5 labels to act as grabpoints for resizing (i'm sure there is a correct technical name for them but I'm sure you know what I mean). So far, so peachy, if you drag a grabpoint it will resize the image but things are going a bit funny when the image is scrolled. I'll try to describe whats happening.
1. Use the Down grabpoint to extend the image off the screen
2. Scroll down to the bottom of the image
3. Grab the Down grabpoint and move it up 1 pixel at a time to reduce the height of the image
At this point after I have moved the mouse up about 10 pixels it starts auto-scrolling up the screen. I haven't set the autoscroll margin, so its set to zero so I wouldn't expect it to autoscroll until the mouse reached the top of the display.
I've included the project although its a dll
Here's the code
Private _mouseDown As Boolean
Private _rs As String
Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles resizeR.MouseDown, resizeD.MouseDown, resizeDR.MouseDown
_mouseDown = True
_rs = CType(sender, Windows.Forms.Label).Name
End Sub
Private Sub Label1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles resizeR.MouseUp, resizeD.MouseUp, resizeDR.MouseUp
_mouseDown = False
_rs = ""
End Sub
Private Sub resizeboxMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles resizeD.MouseMove, resizeR.MouseMove, resizeDR.MouseMove
If _mouseDown Then
Select Case _rs
Case "resizeD"
PictureBox1.Height = Panel1.PointToClient(Panel1.MousePosition).Y - Panel1.AutoScrollPosition.Y
Case "resizeR"
PictureBox1.Width = Panel1.PointToClient(Panel1.MousePosition).X - Panel1.AutoScrollPosition.X
Case "resizeDR"
PictureBox1.Width = Panel1.PointToClient(Panel1.MousePosition).X - Panel1.AutoScrollPosition.X
PictureBox1.Height = Panel1.PointToClient(Panel1.MousePosition).Y - Panel1.AutoScrollPosition.Y
End Select
redrawGrabPoints()
End If
End Sub
Private Sub redrawGrabPoints()
Dim offset As Integer = 5
Dim tempPoint As System.Drawing.Point
tempPoint = New System.Drawing.Point(PictureBox1.Width + offset, 1)
tempPoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeUR.Location = tempPoint
tempPoint = New System.Drawing.Point(1, PictureBox1.Height + offset)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeDL.Location = temppoint
temppoint = New System.Drawing.Point(PictureBox1.Width + offset, PictureBox1.Height + offset)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeDR.Location = temppoint
tempPoint = New System.Drawing.Point(CInt(PictureBox1.Width / 2), PictureBox1.Height + offset)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeD.Location = temppoint
tempPoint = New System.Drawing.Point(CInt(PictureBox1.Width / 2), 1)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeU.Location = temppoint
tempPoint = New System.Drawing.Point(1, CInt(PictureBox1.Height / 2))
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeL.Location = temppoint
tempPoint = New System.Drawing.Point(PictureBox1.Width + offset, CInt(PictureBox1.Height / 2))
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeR.Location = temppoint
I'm trying to create an image editor similar to paint to include in an app. I've got a scrollable panel with a picturebox on it. Around the picturebox are 8 5x5 labels to act as grabpoints for resizing (i'm sure there is a correct technical name for them but I'm sure you know what I mean). So far, so peachy, if you drag a grabpoint it will resize the image but things are going a bit funny when the image is scrolled. I'll try to describe whats happening.
1. Use the Down grabpoint to extend the image off the screen
2. Scroll down to the bottom of the image
3. Grab the Down grabpoint and move it up 1 pixel at a time to reduce the height of the image
At this point after I have moved the mouse up about 10 pixels it starts auto-scrolling up the screen. I haven't set the autoscroll margin, so its set to zero so I wouldn't expect it to autoscroll until the mouse reached the top of the display.
I've included the project although its a dll
Here's the code
Private _mouseDown As Boolean
Private _rs As String
Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles resizeR.MouseDown, resizeD.MouseDown, resizeDR.MouseDown
_mouseDown = True
_rs = CType(sender, Windows.Forms.Label).Name
End Sub
Private Sub Label1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles resizeR.MouseUp, resizeD.MouseUp, resizeDR.MouseUp
_mouseDown = False
_rs = ""
End Sub
Private Sub resizeboxMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles resizeD.MouseMove, resizeR.MouseMove, resizeDR.MouseMove
If _mouseDown Then
Select Case _rs
Case "resizeD"
PictureBox1.Height = Panel1.PointToClient(Panel1.MousePosition).Y - Panel1.AutoScrollPosition.Y
Case "resizeR"
PictureBox1.Width = Panel1.PointToClient(Panel1.MousePosition).X - Panel1.AutoScrollPosition.X
Case "resizeDR"
PictureBox1.Width = Panel1.PointToClient(Panel1.MousePosition).X - Panel1.AutoScrollPosition.X
PictureBox1.Height = Panel1.PointToClient(Panel1.MousePosition).Y - Panel1.AutoScrollPosition.Y
End Select
redrawGrabPoints()
End If
End Sub
Private Sub redrawGrabPoints()
Dim offset As Integer = 5
Dim tempPoint As System.Drawing.Point
tempPoint = New System.Drawing.Point(PictureBox1.Width + offset, 1)
tempPoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeUR.Location = tempPoint
tempPoint = New System.Drawing.Point(1, PictureBox1.Height + offset)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeDL.Location = temppoint
temppoint = New System.Drawing.Point(PictureBox1.Width + offset, PictureBox1.Height + offset)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeDR.Location = temppoint
tempPoint = New System.Drawing.Point(CInt(PictureBox1.Width / 2), PictureBox1.Height + offset)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeD.Location = temppoint
tempPoint = New System.Drawing.Point(CInt(PictureBox1.Width / 2), 1)
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeU.Location = temppoint
tempPoint = New System.Drawing.Point(1, CInt(PictureBox1.Height / 2))
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeL.Location = temppoint
tempPoint = New System.Drawing.Point(PictureBox1.Width + offset, CInt(PictureBox1.Height / 2))
temppoint.Offset(Panel1.AutoScrollPosition.X, Panel1.AutoScrollPosition.Y)
resizeR.Location = temppoint