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 等等。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章