GiveFeedbackEventArgs クラス

ドラッグ操作中に発生する GiveFeedback イベントのデータを提供します。

この型のすべてのメンバの一覧については、GiveFeedbackEventArgs メンバ を参照してください。

System.Object
   System.EventArgs
      System.Windows.Forms.GiveFeedbackEventArgs

<ComVisible(True)>
Public Class GiveFeedbackEventArgs   Inherits EventArgs
[C#]
[ComVisible(true)]
public class GiveFeedbackEventArgs : EventArgs
[C++]
[ComVisible(true)]
public __gc class GiveFeedbackEventArgs : public EventArgs
[JScript]
public
   ComVisible(true)
class GiveFeedbackEventArgs extends EventArgs

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

GiveFeedback イベントは、ドラッグ操作中に発生します。ドラッグ イベントのソースがマウス ポインタの外観を変更して、ドラッグ アンド ドロップ操作中にユーザーに視覚的フィードバックを与えることができます。 GiveFeedbackEventArgs オブジェクトは、ドラッグ アンド ドロップ操作の種類と、既定のカーソルを使用するかどうかを指定します。

イベント モデルの詳細については、「 イベントとデリゲート 」を参照してください。

使用例

[Visual Basic, C#, C++] 2 つの ListBox コントロールの間でドラッグ アンド ドロップ操作を実行する例を次に示します。この例では、ドラッグ アクションが開始したときに DoDragDrop メソッドが呼び出されます。ドラッグ操作は、 MouseDown イベント実行中のマウス位置から SystemInformation.DragSize を超えてマウスが移動したときに開始されます。 IndexFromPoint メソッドは、 MouseDown イベントで、ドラッグする項目のインデックスを判別するために使用します。

[Visual Basic, C#, C++] この例では、ドラッグ アンド ドロップ操作でカスタム カーソルを使用する方法についても示します。この例では、2 つのカーソル ファイル (3dwarro.cur3dwno.cur) がアプリケーション ディレクトリ内に存在していることを想定しています。なお、それぞれのファイルはドラッグ用のカスタム カーソルとドロップなしのカスタム カーソルを表します。カスタム カーソルは、 UseCustomCursorsCheck CheckBox がオンになっている場合に使用されます。カスタム カーソルは、 GiveFeedback イベント ハンドラで設定されます。

[Visual Basic, C#, C++] キーボードの状態は、右側の ListBoxDragOver イベント ハンドラで評価されます。ドラッグ操作の内容は、Shift キー、Ctrl キー、Alt キー、または Ctrl + Alt キーの状態によって決まります。ドロップが発生する ListBox 内の位置は、 DragOver イベント時にも判定されます。ドロップするデータが String でない場合は、 DragEventArgs.EffectDragDropEffects.None に設定されます。最後に、ドロップのステータスが DropLocationLabel Label に表示されます。

[Visual Basic, C#, C++] 右側の ListBox にドロップするデータは、 DragDrop イベント ハンドラで判定されます。また、 String 値が ListBox の該当する場所に追加されます。ドラッグ操作がフォームの範囲を超えて移動した場合、ドラッグ アンド ドロップ操作は QueryContinueDrag イベント ハンドラでキャンセルされます。

[Visual Basic, C#, C++] GiveFeedbackEventArgs クラスの使用方法を次のコード例に示します。コード例全体については、 DoDragDrop メソッドのトピックを参照してください。

 
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback

    ' Use custom cursors if the check box is checked.
    If (UseCustomCursorsCheck.Checked) Then

        ' Set the custom cursor based upon the effect.
        e.UseDefaultCursors = False
        If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
            Cursor.Current = MyNormalCursor
        Else
            Cursor.Current = MyNoDropCursor
        End If
    End If

End Sub

[C#] 
private void ListDragSource_GiveFeedback(object sender, System.Windows.Forms.GiveFeedbackEventArgs e) 
{
    // Use custom cursors if the check box is checked.
    if (UseCustomCursorsCheck.Checked) {

        // Sets the custom cursor based upon the effect.
        e.UseDefaultCursors = false;
        if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
            Cursor.Current = MyNormalCursor;
        else 
            Cursor.Current = MyNoDropCursor;
    }

}

[C++] 
private:
    void ListDragSource_GiveFeedback(Object* /*sender*/, 
        System::Windows::Forms::GiveFeedbackEventArgs* e) {
        
        // Use custom cursors if the check box is checked.
        if (UseCustomCursorsCheck->Checked) {

            // Sets the custom cursor based upon the effect.
            e->UseDefaultCursors = false;
            if ((e->Effect & DragDropEffects::Move) == DragDropEffects::Move)
                Cursor::Current = MyNormalCursor;
            else
                Cursor::Current = MyNoDropCursor;
        }

    }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Windows.Forms

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

GiveFeedbackEventArgs メンバ | System.Windows.Forms 名前空間