我得到Panel
并在其中有一些自定义控件的拖放操作,当拖动开始时,我做了panel.Capture = True;
让面板触发正确的事件,即使用户在鼠标外部释放鼠标左键(例如:panel_DragDrop
),但DragDrop
事件不会被触发,除非在光标位于面板范围内时释放鼠标左键。拖放鼠标捕获
我以为panel.Capture
会解决这个问题,但它没有任何效果。任何想法我在这里想念什么?
编辑:好吧我想我知道我现在要做什么。我想我对DragDrop事件有一个误解。我的应用程序中只有拖动面板内的控件(将其视为移动块),而当用户拖动块并超出界限时,我会自动滚动,如果光标离开面板,则panel_DragDrop
永远不会被调用,如果鼠标被释放,块的放置不会发生。我认为我的解决方案是这样的: Cursor.Clip = panelDiagram.RectangleToScreen(panelDiagram.ClientRectangle);
这将使光标在拖动时绑定到面板边界,所以没有办法让光标离开边界。
对不起任何麻烦
对不起,但我不能做任何事情从你的例子。作为一个孩子尝试使用'Button'作为'Panel'。在按钮上启用D&D,启用面板上的捕获并将面板上的按钮拖出,panel1_DragDrop事件是否会触发?这是我想要实现的。 – prettyvoid 2013-03-05 20:11:58
请阅读第一篇文章中的修改内容。 – prettyvoid 2013-03-05 20:39:00