1
我有這個代碼拖動面板,但它沒有做的事情。 我必須選擇,如果我只是拖動&下拉或調整大小。 我覺得我的代碼在表單加載時出現錯誤。 無論如何,我在這裏有5個標籤,panel1上名爲label1,label2,label3,label4,label5的面板。如何在運行時在面板上拖放和調整標籤大小? C#,winForms
private void form_Load(object sender, EventArgs e)
{
//for drag and drop
//this.panel1.AllowDrop = true; // or Allow drop in the panel.
foreach (Control c in this.panel1.Controls)
{
c.MouseDown += new MouseEventHandler(c_MouseDown);
}
this.panel1.DragOver += new DragEventHandler(panel1_DragOver);
this.panel1.DragDrop += new DragEventHandler(panel1_DragDrop);
//end of drag and drop
}
void c_MouseDown(object sender, MouseEventArgs e)
{
Control c = sender as Control;
c.DoDragDrop(c, DragDropEffects.Move);
}
void panel1_DragDrop(object sender, DragEventArgs e)
{
Control c = e.Data.GetData(e.Data.GetFormats()[0]) as Control;
lblResizeAmtWord.Visible = false;
if (c != null)
{
c.Location = this.panel1.PointToClient(new Point(e.X, e.Y));
//this.panel1.Controls.Add(c); //disable if already on the panel
}
}
void panel1_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
D + D **總是**需要實現DragEnter事件。如果拖放對控件的某些部分有選擇性,則只能使用DragOver。使用面板的事件而不使用面板上的控件會使用戶難以選擇放置目標。 –
那麼,我需要在我的代碼中更改什麼? – ViFer
無論如何,我自己解決它。對於那些想要知道它如此簡單的人。 :D – ViFer