我有一个表单,其中包含可以单独拖动表单的组件。
在我的组件的QueryContinueDrag事件上,如果QueryContinueDragEventArgs。Action is Drop我测试我的组件是否在活动表单中。如果没有,我会创建一个新表单,并将其放在光标的位置。
问题是,dragEffect表示我不能退出表单。有什么办法可以改变吗?
不能在这里发布太多代码,因为它比这个复杂得多。但如果需要的话,我会尝试做一个简单的项目来展示我的问题。
根据吉米:
您可以在拖动某些内容时更改光标。
在QueryContinueDrag:中尝试此操作
switch (e.Action)
{
case DragAction.Continue:
if (!this.Bounds.Contains(MousePosition))
Cursor.Current = Cursors.Help;
break;
case DragAction.Drop:
if (!this.Bounds.Contains(MousePosition))
{
// new Form
}
break;
}
您可以在GiveFeedback
中执行同样的操作,检查Cursor位置,如果位置超出界限,则设置e.UseDefaultCursors = false; Cursor.Current = Cursors.Help;
,否则设置e.UseDefaultCursors = true;
。