如下试试看:private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
Cursor.Clip = Rectangle.Empty;
return;
}
Cursor.Clip = this.RectangleToScreen(this.pictureBox1.Bounds);
}

解决方案 »

  1.   

    抄一个给你:(VB的)
        
      怎样限制鼠标移动         
          
      本文介绍如何限制鼠标在窗口的指定范围内移动。这个技术在需要防止用户鼠标在指定区域内活动时非常   
      有用。例如在一个射击游戏中,需要限制鼠标在射击区内移动。   
      操作步骤   
      1、建立一个新工程项目,缺省建立窗体FORM1   
      2、添加一个新模体   
      3、粘贴下面代码到新模体   
        
      Option   ExplicitDeclare   Function   ClipCursor   Lib   "user32"   (lpRect   As   Any)   As   Long   
      Declare   Function   ClipCursorClear   Lib   "user32"   Alias   "ClipCursor"   (ByVal   lpRect   As   Long)   As   Long   
      Declare   Function   ClientToScreen   Lib   "user32"   (ByVal   hwnd   As   Long,   lpPoint   As   POINTAPI)   As   Long   
      Type   RECT   
      Left   As   Long   
      Top   As   Long   
      Right   As   Long   
      Bottom   As   Long   
      End   Type   
      Type   POINTAPI   
      X   As   Long   
      Y   As   Long   
      End   Type   
      Public   RetValue   As   Long   
      Public   ClipMode   As   Boolean   
        
        
      Public   Sub   SetCursor(ClipObject   As   Object,   Setting   As   Boolean)   
      '   used   to   clip   the   cursor   into   the   viewport   and   
      '   turn   off   the   default   windows   cursor   
        
        
      Dim   CurrentPoint   As   POINTAPI   
      Dim   ClipRect   As   RECT   
        
        
      If   Setting   =   False   Then   
      '   set   clip   state   back   to   normal   
      RetValue   =   ClipCursorClear(0)   
      Exit   Sub   
      End   If   
        
        
      '   set   current   position   
      With   CurrentPoint   
      .X   =   0   
      .Y   =   0   
      End   With   
      '   find   position   on   the   screen   (not   the   window)   
      RetValue   =   ClientToScreen(ClipObject.hwnd,   CurrentPoint)   
      '   designate   clip   area   
      With   ClipRect   
      .Top   =   CurrentPoint.Y   
      .Left   =   CurrentPoint.X   
      .Right   =   .Left   +   ClipObject.ScaleWidth   
      .Bottom   =   .Top   +   ClipObject.ScaleHeight   
      End   With   '   clip   it   
      RetValue   =   ClipCursor(ClipRect)   
        
        
      End   Sub   
        
        
      4、添加一个图片框控件(PICTURE1)到窗体(FORM1)   
      5、设置PICTURE1的尺寸和FORM1的一样大   
      6、在PICTURE1的CLICK事件中添加以下代码:   
        
        
      Private   Sub   Picture1_Click()   
      ClipMode   =   Not   ClipMode   
      SetCursor   Picture1,   ClipMode   
      End   Sub   
        
        
      7、保存工程项目   
      8、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。   
      注意:如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。   
      另一个限制鼠标活动范围的方法是关闭鼠标,用其他图象代替光标,例如手枪。
      

  2.   

    一楼正解:Cursor.Clip = this.RectangleToScreen(this.pictureBox1.Bounds);
      

  3.   

    这个好说,给你一个例子参考一下:
    private Point m_startPoint;
    private Point m_lastPoint;
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
    this.m_startPoint = e.Location;
    this.m_lastPoint = e.Location;
    if (e.Button == MouseButtons.Left)
    {
    Cursor.Clip = this.RectangleToScreen(this.pictureBox1.Bounds);
    return;
    }
    }private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
    if (e.Button != MouseButtons.Left)
    {
    return;
    }
    ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(Rectangle.FromLTRB(this.m_startPoint.X, this.m_startPoint.Y, this.m_lastPoint.X, this.m_lastPoint.Y)), Color.White, FrameStyle.Dashed);
    this.m_lastPoint = e.Location;
    ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(Rectangle.FromLTRB(this.m_startPoint.X, this.m_startPoint.Y, this.m_lastPoint.X, this.m_lastPoint.Y)), Color.White, FrameStyle.Dashed);
    }private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
    ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(Rectangle.FromLTRB(this.m_startPoint.X, this.m_startPoint.Y, this.m_lastPoint.X, this.m_lastPoint.Y)), Color.White, FrameStyle.Dashed);
    Cursor.Clip = Rectangle.Empty;
    }
      

  4.   

    Form里面有一个PictureBox1,用鼠标在图片上托动,在图片上产生一个矩形框,松开鼠标后,对矩形框的区域进行放大
      

  5.   

    你要改为用Graphics.DrawImage来绘制,
    你可以跟据画出的矩形大小,转为PictureBox的矩形,然后把图片用DrawImage方法画出指定矩形区域到PicutreBox的ClientRectangle上.