2010-12-15 7 views
5

WindowsフォームアプリケーションでDoDragDropメソッドを呼び出すコントロールに違いがあるのだろうかと思います。どのコントロールでDoDragDropメソッドを呼び出すのが重要ですか?

私は2つのPictureBoxコントロールを持つフォームを持っています。 1つはドラッグでき、もう1つはAllowsDropプロパティがtrueに設定されています。

次のようにドラッグ可能なピクチャのためのMouseDownイベントハンドラは次のとおりです。

private void dragPictureBox_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (sender is PictureBox) 
     { 
      var pictureBox = (PictureBox) sender; 
      var effect = pictureBox.DoDragDrop(
       pictureBox.Image, DragDropEffects.All); 
      MessageBox.Show("Drag ended in a " + effect); 
     } 
    } 

しかし、私はフォーム自体

例えば、任意のコントロールを使用することができますようにピクチャボックス上でDoDragDrop関数を呼び出す代わりに、私はそうです
var effect = this.DoDragDrop(pictureBox.Image, DragDropEffects.All); 

あるいは

var effect = label1.DoDragDrop(pictureBox.Image, DragDropEffects.All); 

それはどんなdiffereを作るんどんなコントロールをDoDragDropメソッドと呼んでいますか?もしそうなら、違いは何ですか?

答えて

3

これはあまり詳しくは書かれていませんが、どのコントロールにはQueryContinueDragというイベントが発生していると思われます。

すべての例ではドラッグデータのソースが使用される傾向がありますので、私はそれを使用します。

+0

あなたは絶対に正しいです。 GiveFeedbackイベントでも同様です。面白いことに、ドキュメンテーションでは、キーボードやマウスボタンの状態が変更された場合にのみ発生すると記載されていますが、ドラッグ操作中に両方のイベントが発生し続けることがあります。 – comecme

関連する問題