2012-03-06 5 views
0

にエクスプローラからドラッグすることはできません。エクスプローラからListViewにファイルをドロップし、ドラッグアンドドロップで並べ替えることができるようにしたい。私はエクスプローラからドラッグ/ドロップを取得するこの単純なコードを持っています。は、私はどこでもこれを見て、すべてのソリューションをしようと、私が欲しいものを得るために見せかけていないですしているListViewの

 this.messageView.AllowDrop = true; 
     this.messageView.Location = new System.Drawing.Point(12, 52); 
     this.messageView.Name = "messageGrid"; 
     this.messageView.Size = new System.Drawing.Size(121, 97); 
     this.messageView.TabIndex = 3; 
     this.messageView.UseCompatibleStateImageBehavior = false; 
     this.messageView.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); 
     this.messageView.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); 

とハンドラ

 private void Form1_DragEnter(object sender, DragEventArgs e) 
     { 

     if (e.Data.GetDataPresent("FileGroupDescriptor")) 
      { 
      e.Effect = DragDropEffects.All; 
      } 
     } 

    private void Form1_DragDrop(object sender, DragEventArgs e) 
     { 
     messageView.Items.Add(e.Data.ToString()); 
     } 

私は私が私のフォーム上に持っているリッチテキストボックスにmessageViewを変更するの、それだけで正常に動作しますので、これは、奇妙です。私がしなければならない追加のステップはありますか?私はListViewにドロップしようとすると、私はエクスプローラからの線を持つ円を取得します。どんな助けもありがとう。ありがとう。

答えて

1

DragEnterイベントとDragDropのイベントは、リストビューでは、いないフォームで処理する必要があります。 ドラッグアンドドロップについて:私は記事の名前を覚えていませんが、私はcodeprojectでその良い例を見つけました。

+0

彼らは、リストビューで処理され、それらの名前だけは少しファンキーです。 (文字列[]あなたは繰り返すことができ、彼らはFileDrop、右の文字列があるべき定数DataFormats.FileDropに、あなたは正しいデータを得ることができますDragDropイベントでのInitializeComponent() –

+2

変更「FILEGROUPDESCRIPTOR」以外の場所に初期化する必要がないということ)ToString()の代わりにe.Data.GetData()メソッドを使用しています。 –

関連する問題

 関連する問題