Autoscrolling panel problem


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 1 of 1

Thread: Autoscrolling panel problem

  1. #1
    Join Date
    Sep 2004
    Posts
    77

    Autoscrolling panel problem

    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

    End Sub
    Attached Files Attached Files

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center