【发布时间】:2016-03-01 13:32:46
【问题描述】:
当我解除(结束)拖动单击时,我需要运行代码。这个事件是怎么调用的?
这是主要示例,请查看以下屏幕截图以获取更多信息:
我让我可以将汽车拖到其他图片框上,如下所示:
再重复一遍 - 我需要知道什么是 EVENT 然后你解散拖到图片框上?
【问题讨论】:
-
你的意思是它什么时候掉下来的?或者当拖动被拒绝时?
标签: c# winforms drag-and-drop mouseevent
当我解除(结束)拖动单击时,我需要运行代码。这个事件是怎么调用的?
这是主要示例,请查看以下屏幕截图以获取更多信息:
我让我可以将汽车拖到其他图片框上,如下所示:
再重复一遍 - 我需要知道什么是 EVENT 然后你解散拖到图片框上?
【问题讨论】:
标签: c# winforms drag-and-drop mouseevent
在控件上释放拖动时没有事件,但您实际上并不需要。这就是我为模拟(我认为)您正在寻找的东西所做的。我使用了this stackoverflow answer提供的代码
private Point? _mouseLocation;
private void Form1_Load(object sender, EventArgs e)
{
this.pictureBox1.MouseDown += this.pictureBox1_MouseDown;
this.pictureBox1.MouseUp += this.pictureBox1_MouseUp;
this.pictureBox1.MouseMove += this.pictureBox1_MouseMove;
}
void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if ( this._mouseLocation.HasValue)
{
this.pictureBox1.Left = e.X + this.pictureBox1.Left - this._mouseLocation.Value.X;
this.pictureBox1.Top = e.Y + this.pictureBox1.Top - this._mouseLocation.Value.Y;
}
}
void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
this._mouseLocation = null;
}
void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
//Check if you've left-clicked if you want
this._mouseLocation = e.Location;
}
使用this._mouseLocation = null; 将鼠标位置设置为空是您的“拖动释放”代码。
【讨论】:
【讨论】:
PictureBox 本身,DragDrop 不是正确的事件。该事件在将某些内容拖入控件并放置时触发,而不是在控件本身被拖动时触发。