我们需要在用户将项目拖入我们的应用程序时向用户显示反馈。 我们的客户希望这种反馈采用自定义光标的形式。
这已经实现了拖出,使用在GiveFeedback
事件处理程序中设置的自定义光标(在我们的应用程序中拖出项目时由DoDragDrop
引发)。 GiveFeedbackEventArgs
允许我们指定UseDefaultCursors
属性 - 将此值设置为false允许我们覆盖光标。
但是,DragOver
事件处理程序参数(相当于GiveFeedback
)没有UseDefaultCursors
属性,并且从那里更改游标没有任何影响。
示例(这没有效果):
private void browser_DragOver(object sender, DragEventArgs e) {
Cursor.Current = Cursors.WaitCursor;
}
拖动操作源自我们的应用程序外部。 (对于应用内拖动,它使用GiveFeedback
事件。
接收拖动时如何更改光标?这甚至可行/可行吗?
答案 0 :(得分:2)
void Form1_GiveFeedback(object sender, GiveFeedbackEventArgs e) {
e.UseDefaultCursors = false;
}
答案 1 :(得分:2)
是的,您必须实现COM接口(IDragSourceHelper和IDropTargetHelper)。 看看HERE。
答案 2 :(得分:1)
这样就够了吗? 此代码将通过在其旁边添加[+]符号来更改鼠标指针。
private void Form_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
答案 3 :(得分:-2)
我们在这里解决了一系列拖放问题:
Drag and Drop between Instances of the same Windows Forms Application
希望这会指出你正确的方向。