アプリケーション内でファイルのドラッグ アンド ドロップ機能をVisual C#する

この記事では、ファイル のドラッグ アンド ドロップ機能をアプリケーションで提供するVisual C#します。

元の製品バージョン:   Visual C++
元の KB 番号:   307966

概要

この記事で説明する手順では、ファイルのドラッグ アンド ドロップ機能をアプリケーションで提供する方法Visual C#します。 コントロール ListBox は、ファイルのドラッグ アンド ドロップ プロシージャの宛先として使用されます。

要件

この一覧では、必要な推奨ハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、およびサービス パックの概要を示します。Visual C#。

この記事では、次のトピックに精通している必要があります。

  • Windows Forms ListBox control
  • Windows Forms event handling

サンプルをビルドする手順

ListBox コントロールは、処理する必要がある 2 つのドラッグ アンド ドロップ イベントを提供 DragEnter します。 DragDrop このイベントは、コントロールの境界内でオブジェクトをドラッグするときに発生し、ドラッグするオブジェクトがコントロールにドロップを許可するオブジェクトであるかどうかを判断するために DragEnter 使用されます。 ファイルまたはファイルがコントロールにドラッグされる場合は、このイベントを処理します。 これにより、ドラッグするオブジェクトに応じて、コントロールの上にオブジェクトをドラッグすると、適切なアイコンが表示されます。 この DragDrop イベントは、ドラッグ中のオブジェクトがコントロール上で解放された場合に発生します。 オブジェクトを取得するには、このイベントを処理します。 Data オブジェクトを使用してデータを取得します。

Data オブジェクトのメソッドは、コントロールにドラッグされたファイルの完全なパス名を含む文字列 GetData の配列を返 ListBox します。 このファイル パス情報を使用して、ファイルに必要な操作を実行できます。 たとえば、名前空間のクラスを使用して、ファイルを開いて読み取り、ファイルを移動したり、ファイルを新しい場所 System.IO にコピーすることができます。 この例では、コントロールにドラッグされたファイルに完全なパスを追加 ListBox します。

ファイルのドラッグ アンド ドロップ機能をアプリケーションで提供するには、次Visual C#手順を実行します。

  1. .NET または Windows 2005 で新Visual C#フォーム アプリケーションをVisual C#します。 Form1 は既定で作成されます。

  2. ツールボックスを使用して ListBox Form1 にコントロール を追加します

  3. [プロパティ ] ウィンドウ で、コントロールのプロパティを True に変更して、オブジェクトをコントロール AllowDrop ListBox にドラッグできます。

  4. ソリューション エクスプローラーで 、[Form1] を右クリックし、[コードの表示] をクリックします

  5. イベントを処理するには、フォーム デザイナーがクラスで生成するコード セクション DragEnter Windows次のメソッドを追加 Form1 します。

    private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
        if(e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;
    }
    
  6. イベントを処理するには、手順 5 で追加したメソッドの直後に次 DragDrop Form1 のメソッドをクラスに追加します。

    private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
        string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false);
        int i;
        for(i = 0; i < s.Length; i++)
            listBox1.Items.Add(s[i]);
    }
    
  7. 2 つのイベント ハンドラーをコントロール イベントに関連付けるには、呼び出し後にコンストラクターに次の Form1 コードを追加します InitializeComponent

    this.listBox1.DragDrop += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
    this.listBox1.DragEnter += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
    
  8. プロジェクトをビルドして実行します。

  9. デスクトップまたは別のフォルダーから ListBox コントロールに 1 つ以上のファイルをドラッグします。 ファイルの完全なパスがコントロールに追加 ListBox されます。

関連情報

詳細については、次の Web サイトを参照してください。