C# 拖动过程中修改光标样式

在Control 类中有virtual函数 public virtual OnDragOver(DragEventArgs e) 方法, 开发人员可以重载这个函数实现拖动过程中大部分功能,我们可以设置参数e.Effect,来决定很多行为,但是有的时候需求经常改变,比如用户可能要求在不同的条件下,光标显示是不同的,比如同样是e.Effect==DragDropEffects.None, 可能drag over到不同的控件下要显示的光标不一样,那怎样在DragOver的过程中改变光标的显示呢?同样在Control类下有函数virtual void OnGiveFeedback(GiveFeedbackEventArgsgfbevent); 通过重载这个函数可以实现该功能,具体过程如下:

在要执行DoDragDrop的对象对应的类里承载


1. 在要执行DoDragDrop的对象对应的类里承载OnGiveFeedback(GiveFeedbackEventArgs gfbevent);

2. 在OnGiveFeedback(GiveFeedbackEventArgs gfbevent) 函数里面添加代码更换光标,例如

private void OnGiveFeedback(GiveFeedbackEventArgs e){ e.UseDefaultCursors = false; Cursor.Current = MyCursor;}

还有类似方法Control类的 event GiveFeedback 等等。


你可能感兴趣的:(c#,笔记)