移出窗体时更改DragEffect



我有一个表单,其中包含可以单独拖动表单的组件。

在我的组件的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;

最新更新