を発生したときに、送信者に伝え、私は自分のフォームで、#3.5 /リサイズドラッグ&ドロップ:ドロップは
cを使用しています、私はパネルで、2つのPictureBox PB1とPB2(およびその他のコントロールの多くを)持っています。 ユーザーはPB1をPB2にドラッグできます。しかし、フォーム上の任意の場所またはフォームの外にある左ボタンを放すことによってドロップをキャンセルすることもできます。 PB1は固定回数だけドラッグできます。ドラッグが始まると、私はPB1の変数を減らし、0に達するとPBは見えなくなりました。
しかし、ユーザーがドラッグをキャンセルした場合、PB1はその変数を増やしてPB1の表示を設定する必要があります。
私の問題は、ドラッグがキャンセルされた(または実際に有効なコントロールであってもドロップされた)ことをPB1がどのように知ることができるかです。ユーザーはフォームの外にドラッグを解放できるので、フォームでドロップイベントを使用することはできません。私はGiveFeedbackとQueryContinueDragイベントを試していますが、ドラッグが続行されている間は起動されますが、停止しない限り起動されます。
いくつかのコード: "1〜4有効なターゲットがある"
class COPGOJetonImage
{
private PictureBox PB1;
public COPGOJetonImage()
{
PB1 = new PictureBox();
//here I initialize PB1
((Control)PB1).AllowDrop = true; //in case of
PB1.MouseDown += OnMouseDown;
}
public void OnMouseDown(object sender, MouseEventArgs ev)
{
PB1.DoDragDrop(PB1.Image, DragDropEffects.Copy);
}
}
「PB2._にPB1をドラッグすることができ_Theユーザーは」PB2が唯一の有効なドロップターゲットですか?有効にドロップできる唯一の場所がフォームのどこかにある場合は、ドロップが発生したときに変数を減らすほうが意味があります。 –
'DoDragDrop'はドロップターゲットによって設定された結果エフェクトを返すメソッドです – Plutonix
実際には、有効なターゲットは1〜4です。 – bubarnet