如何在面板周围拖动控件?

时间:2016-04-14 19:57:57

标签: c# winforms panel drag

假设我在Windows窗体上有一个像Picture Box这样的控件,我希望用户能够像面板一样随意地将它拖动到面板上,直到他们想要的任何位置。最好的方法是什么?

之后,我希望能够在面板上检索图像的位置。显然我需要MouseDown事件,我的第一个想法是将控件的位置设置为等于游标位置,但是这个小问题并不顺畅。

2 个答案:

答案 0 :(得分:1)

这篇文章也可能有用HERE ... 要显示输出,只需添加标签或文本框并显示坐标,如:

textbox1.Text = pictureBox1.Location.ToString();

或坐标:

pictureBox.Location(这是一个要点) - 或者 - pictureBox.Location.X // pictureBox.Location.Y(整数)

答案 1 :(得分:-1)

  1. 开始新主题

    Thread thr = new Thread(() =>
    {
        while(true)
        {
            Thread.Sleep(10) // < Limit CPU usage
            if(mouseDownBool == true)
            {
                icontrol.Location = new Point(Cursor.Position.X, Cursor.Position.Y);
            }
        }
    });
    thr.Start();
    
  2. 如果mouseDown将mouseDownBool更新为true

  3. 如果mousUp将mouseDownBool更新为false
  4.   

    您还可以添加偏移量以获得更好的效果。