日期:2014-05-18  浏览次数:20778 次

关于拖放的问题
关于拖放的问题
实现要求:把一个标签拖放到窗体外,用户释放鼠标时执行自定义操作
问题:如何得知用户在窗体外释放了鼠标,会引发什么事件?

------解决方案--------------------
这里给点参考
http://blog.csdn.net/fht123/
------解决方案--------------------
拖到窗体外放?不太理解,在外部了你放显示在哪里?那不相当于删除了?
------解决方案--------------------
判断定点坐标应该可以,拖动的时候会触发事件,或者用鼠标的事件。通过判断你的point是否在主窗体内就好了,主窗体不是有 location 和seize吗
------解决方案--------------------
up
------解决方案--------------------
就应该是用鼠标的事件来实现,然后判断坐标。
------解决方案--------------------
控件本身也有拖动吧。你判断控件当前的坐标是否在主窗体内就可以了,需要坐标转换下
------解决方案--------------------
顶一下..学习..再接分..
------解决方案--------------------
当用户拖拽Item到控件外的Form上的时候,OnLostFocus 和 OnDragLeave 被调用。

参考:
http://bbs.msproject.cn/default.aspx?g=posts&t=246
http://bbs.msproject.cn/default.aspx?g=posts&t=299

------解决方案--------------------
顶一个..
------解决方案--------------------
可以使用ClientRectangle来判断就可以了,比如:
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (this.Capture)
{
if (!this.ClientRectangle.Contains(e.Location))
{
MessageBox.Show(this, "移出了 ");
}
}
}