Jump to content
Xtreme .Net Talk

Recommended Posts

Posted

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

ImageEditor.zip

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...