离开我的表单时更改 DragEffect
Changing DragEffect when moving out of my form
我有一个表单,其中包含可以拖出我的表单的组件。
在我的组件的 QueryContinueDrag 事件中,如果 QueryContinueDragEventArgs.Action 是 Drop 我测试我的组件是否处于活动状态。如果没有,我创建一个新表单并将其放在光标所在的位置。
问题是,dragEffect 指示我无法拖出表单。有什么办法可以改变这个吗?
这里不能 post 太多代码,因为它比这要复杂得多。但如果需要,我会尝试做一个简单的项目来展示我的问题。
根据Jimi:
您可以在拖动内容时更改光标。
在 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;
.
我有一个表单,其中包含可以拖出我的表单的组件。
在我的组件的 QueryContinueDrag 事件中,如果 QueryContinueDragEventArgs.Action 是 Drop 我测试我的组件是否处于活动状态。如果没有,我创建一个新表单并将其放在光标所在的位置。
问题是,dragEffect 指示我无法拖出表单。有什么办法可以改变这个吗?
这里不能 post 太多代码,因为它比这要复杂得多。但如果需要,我会尝试做一个简单的项目来展示我的问题。
根据Jimi:
您可以在拖动内容时更改光标。
在 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;
.