Drag and Drop Windows Forms Button

前端 未结 1 1211

I create a new Windows Forms Application. I drag a button on to the form. I need to drag and drop this button to another location within this form at run time. any code sni

相关标签:
1条回答
  • 2021-01-03 03:21

    You can start with something like this:

      bool isDragged = false;
      Point ptOffset;
      private void button1_MouseDown( object sender, MouseEventArgs e )
      {
         if ( e.Button == MouseButtons.Left )
         {
            isDragged = true;
            Point ptStartPosition = button1.PointToScreen(new Point(e.X, e.Y));
    
            ptOffset = new Point();
            ptOffset.X = button1.Location.X - ptStartPosition.X;
            ptOffset.Y = button1.Location.Y - ptStartPosition.Y;
         }
         else
         {
            isDragged = false;
         }
      }
    
      private void button1_MouseMove( object sender, MouseEventArgs e )
      {
         if ( isDragged )
         {
            Point newPoint = button1.PointToScreen(new Point(e.X, e.Y));
            newPoint.Offset(ptOffset);
            button1.Location = newPoint;
         }
      }
    
      private void button1_MouseUp( object sender, MouseEventArgs e )
      {
         isDragged = false;
      }
    
    0 讨论(0)
提交回复
热议问题