我創建了一個由兩個pictureBoxes和兩個標籤組成的控件(稱爲Table)。拖放在自定義控件C#
我試圖將它從面板拖放到另一個面板,但它不起作用。 這是我的代碼:
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]));
}
顯然我在是Panel2設置的AllowDrop爲true。當我點擊Table對象(在panel1中)時,鼠標光標不會改變。它看起來像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);
所以放置[** **斷點(https://msdn.microsoft.com/en-us/library/5557y8b4.aspx)在'MouseDown',看看它是否會被觸發或不。 –
我試過了,我看到它不會觸發...相反,如果我在標準控件(如TextBox)上執行相同的操作,則它正確工作... – Pietro
因此,您似乎並未訂閱事件...請參閱下面的答案。 –