大家一定都用过 ACDSee 和 Acrobat PDF Reader 吧?
当图像大于你当前的显示窗口时,你可以用小手状的鼠标,抓住图片,拖动着看!
请问,怎样才能在程序中实现此功能?

解决方案 »

  1.   

    private void panel2_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button == MouseButtons.Left)
    {
    mouseDown = true;
    p.X = e.X;
    p.Y = e.Y;
    }
    } private void panel2_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    mouseDown = false;
    } private void panel2_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(mouseDown)
    {
    if((panel2.Left+panel2.Width)>panel2.Parent.Width)
    return;
    panel2.Left = panel2.Location.X + e.X - p.X;
    panel2.Top = panel2.Location.Y + e.Y - p.Y;
    }
    }
    拖动panel
      

  2.   

    public const int WM_NCLBUTTONDOWN = 0xA1;
    public const int HT_CAPTION = 0x2; [DllImportAttribute ("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, 
    int Msg, int wParam, int lParam);

    [DllImportAttribute ("user32.dll")]
    public static extern bool ReleaseCapture();private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Left)
    {
    ReleaseCapture();
    SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
    }
    }