2つの画像ボックスと2つのラベルで構成されるコントロール(表と呼ばれる)を作成しました。カスタムコントロールのドラッグアンドドロップC#
パネルから別のパネルにドラッグアンドドロップしようとしていますが、動作しません。 これは私のコードです:もちろん、私はpanel2でtrueに設定したAllowDrop
void TableExampleMouseDown(object sender, MouseEventArgs e)
{
tableExample.DoDragDrop(tableExample, DragDropEffects.Copy);
}
void Panel2DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
void Panel2DragDrop(object sender, DragEventArgs e)
{
panel2.Controls.Add((Table) e.Data.GetData(e.Data.GetFormats()[0]));
}
。すでに(Panel1にある)Tableオブジェクトをクリックすると、マウスカーソルは変更されません。 MouseDownイベントが発生しないようです...
ありがとう!
これは私がハンドラをサブスクライブするコンストラクタコードの一部です:あなたはMouseDown
イベントをサブスクライブするのを忘れているように見える
this.tableExample.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TableExampleMouseDown);
this.label2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Label2MouseDown);
this.panel1.DragDrop += new System.Windows.Forms.DragEventHandler(this.Panel1DragDrop);
this.panel1.DragEnter += new System.Windows.Forms.DragEventHandler(this.Panel1DragEnter);
だから、 'MouseDown'で[**ブレークポイント**](https://msdn.microsoft.com/en-us/library/5557y8b4.aspx)を配置し、それが火をした場合に参照しますか、ない。 –
私は試してみましたが、それは起動しないことがわかりました...代わりに、TextBoxなどの標準コントロールで同じことをすると、正常に動作します... – Pietro
実際に購読していないようですイベント...下の私の答えを参照してください。 –