2017-01-04 7 views
-1

私はListView間でドラッグ&ドロップできるwinformsアプリケーションを持っています。アプリケーション全体の一貫性を保つため、ItemDrag、DragOver、GiveFeedback、およびDragDropイベントの購読を処理するDragDropHelperクラスを作成しました。機能は正常に動作しますが、GiveFeedbackイベントのカスタムカーソルの設定は例外です。Cursor.Currentを設定するとドラッグ/ドロップヘルパークラスに影響しません

マイDragDropHelper.GiveFeedbackイベントハンドラが(このコードはDragDropHelperクラスである、覚えて)非常に基本的なものです:

public void GiveFeedback(object sender, GiveFeedbackEventArgs e) 
{ 
    if (mDragCursor == null) return; 

    // We want our own icon as the cursor 
    e.UseDefaultCursors = false; 
    Cursor.Current = this.mDragCursor;    
} 

私はGiveFeedbackイベントがトリガされていることを確認し、Cursor.Currentことをしています行は実行されていますが、Current.Cursor値には影響しません。システムが私を無視しているかのようです。

ここで、この同じコードをForm.csコード自体にコピー/ペーストすれば正常に動作します。だから私の質問です:ヘルパークラスでドラッグ&ドロップ操作をラップすることができますし、そのようなクラスからCursor.Currentを設定できますか?

私もGiveFeedbackハンドラでListView.Cursorを設定しようとしましたが、役に立たないことに注意してください。

答えて

-1

あなたはe.Effectsプロパティを設定します。

e.Effect = DragDropEffects.Copy; 
+0

私はDragEnterイベントハンドラにe.Effectを設定しています。 GiveFeedbackハンドラでは、e.EffectはReadOnlyです。 – BarryE

関連する問題