C# 移出我的窗体时更改DrageEffect

C# 移出我的窗体时更改DrageEffect,c#,winforms,draggable,C#,Winforms,Draggable,我有一个表单,其中包含的组件可以拖出我的表单,使其独立 在my components的QueryContinueDrag事件中,如果QueryContinueDragEventArgs.Action是Drop I test(如果我的组件处于活动状态)。如果没有,我将创建一个新表单,并将其放在光标所在的位置 问题是,DrageEffect表明我不能退出表单。我有办法改变这个吗 不能在这里发布太多代码,因为它比这复杂得多。但如果需要,我会尝试做一个简单的项目来展示我的问题。根据: 您可以在拖动对象时

我有一个表单,其中包含的组件可以拖出我的表单,使其独立

在my components的QueryContinueDrag事件中,如果QueryContinueDragEventArgs.Action是Drop I test(如果我的组件处于活动状态)。如果没有,我将创建一个新表单,并将其放在光标所在的位置

问题是,DrageEffect表明我不能退出表单。我有办法改变这个吗

不能在这里发布太多代码,因为它比这复杂得多。但如果需要,我会尝试做一个简单的项目来展示我的问题。

根据:


您可以在拖动对象时更改光标

在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
中执行相同的操作,检查光标位置,并设置
e.UseDefaultCursors=false;Cursor.Current=Cursors.Help如果位置超出边界,否则
e.UseDefaultCursors=true

您可以在拖动内容时更改光标。在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;}
您可以在给定的反馈中执行相同的操作,检查光标位置并设置
e.UseDefaultCursors=false;Cursor.Current=Cursors.Help如果位置超出边界,否则
e.UseDefaultCursors=true(现在无法测试,请查看运行情况)