Control.DragDrop イベントとは? わかりやすく解説

Control.DragDrop イベント

ドラッグ アンド ドロップ操作完了したときに発生します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Event DragDrop As
 DragEventHandler
Dim instance As Control
Dim handler As DragEventHandler

AddHandler instance.DragDrop, handler
public event DragEventHandler DragDrop
public:
event DragEventHandler^ DragDrop {
    void add (DragEventHandler^ value);
    void remove (DragEventHandler^ value);
}
/** @event */
public void add_DragDrop (DragEventHandler
 value)

/** @event */
public void remove_DragDrop (DragEventHandler
 value)
JScript では、イベント使用できますが、新規に宣言することはできません。
解説解説
使用例使用例

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

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

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

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

DragDrop イベント使用方法次のコード例示しますコード例全体については、DoDragDrop メソッドトピック参照してください

Private Sub ListDragTarget_DragDrop(ByVal
 sender As Object, ByVal
 e As DragEventArgs) Handles ListDragTarget.DragDrop
    ' Ensures that the list item index is contained in the data.

    If (e.Data.GetDataPresent(GetType(System.String)))
 Then

        Dim item As Object
 = CType(e.Data.GetData(GetType(System.String)), System.Object)

        ' Perform drag-and-drop, depending upon the effect.
        If (e.Effect = DragDropEffects.Copy Or
 _
            e.Effect = DragDropEffects.Move) Then

            ' Insert the item.
            If (indexOfItemUnderMouseToDrop <> ListBox.NoMatches)
 Then
                ListDragTarget.Items.Insert(indexOfItemUnderMouseToDrop, item)
            Else
                ListDragTarget.Items.Add(item)

            End If
        End If
        ' Reset the label text.
        DropLocationLabel.Text = "None"
    End If
End Sub
private void ListDragTarget_DragDrop(object
 sender, System.Windows.Forms.DragEventArgs e) 
{
    // Ensure that the list item index is contained in the data.
    if (e.Data.GetDataPresent(typeof(System.String))) {

        Object item = (object)e.Data.GetData(typeof(System.String));

        // Perform drag-and-drop, depending upon the effect.
        if (e.Effect == DragDropEffects.Copy ||
            e.Effect == DragDropEffects.Move) {
        
            // Insert the item.
            if (indexOfItemUnderMouseToDrop != ListBox.NoMatches)
                ListDragTarget.Items.Insert(indexOfItemUnderMouseToDrop, item);
            else
                ListDragTarget.Items.Add(item);
            
        }
    }
    // Reset the label text.
    DropLocationLabel.Text = "None";
}
void ListDragTarget_DragDrop( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^
 e )
{
   // Ensure that the list item index is contained in the data.
   if ( e->Data->GetDataPresent( System::String::typeid
 ) )
   {
      Object^ item = dynamic_cast<Object^>(e->Data->GetData( System::String::typeid
 ));
      
      // Perform drag-and-drop, depending upon the effect.
      if ( e->Effect == DragDropEffects::Copy || e->Effect
 == DragDropEffects::Move )
      {
         // Insert the item.
         if ( indexOfItemUnderMouseToDrop != ListBox::NoMatches
 )
                        ListDragTarget->Items->Insert( indexOfItemUnderMouseToDrop,
 item );
         else
                        ListDragTarget->Items->Add( item );
      }
   }

   // Reset the label text.
   DropLocationLabel->Text = "None";
}
private void listDragTarget_DragDrop(Object
 sender, 
    System.Windows.Forms.DragEventArgs e)
{
    // Ensure that the list item index is contained in the data.
    if (e.get_Data().GetDataPresent(String.class.ToType()))
 {
        Object item = (Object)(e.get_Data().GetData(
               String.class.ToType()));
        // Perform drag-and-drop, depending upon the effect.
        if (e.get_Effect().Equals(DragDropEffects.Copy) || 
            e.get_Effect().Equals(DragDropEffects.Move)) {
            // Insert the item.
            if (indexOfItemUnderMouseToDrop != ListBox.NoMatches)
 {
                listDragTarget.get_Items().Insert(
                    indexOfItemUnderMouseToDrop, item);
            }
            else {
                listDragTarget.get_Items().Add(item);
            }
        }
    }
    // Reset the label text.
    dropLocationLabel.set_Text("None");
} //listDragTarget_DragDrop
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からControl.DragDrop イベントを検索した結果を表示しています。
Weblioに収録されているすべての辞書からControl.DragDrop イベントを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からControl.DragDrop イベント を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Control.DragDrop イベント」の関連用語

Control.DragDrop イベントのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Control.DragDrop イベントのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS