基本上我通過拖放標籤到文本框來拖放使用文本框和標籤。文本框和標籤在循環中創建。WPF C#拖放
我已動態創建文本框(文本框是放置目標)是這樣的:
TextBox tbox = new TextBox();
tbox.Width = 250;
tbox.Height = 50;
tbox.AllowDrop = true;
tbox.FontSize = 24;
tbox.BorderThickness = new Thickness(2);
tbox.BorderBrush = Brushes.BlanchedAlmond;
tbox.Drop += new DragEventHandler(tbox_Drop);
if (lstQuestion[i].Answer.Trim().Length > 0)
{
wrapPanel2.Children.Add(tbox);
answers.Add(lbl.Content.ToString());
MatchWords.Add(question.Content.ToString(), lbl.Content.ToString());
}
我也dynanmically創建標籤(標籤拖動目標)是這樣的:
Dictionary<string, string> shuffled = Shuffle(MatchWords);
foreach (KeyValuePair<string, string> s in shuffled)
{
Label lbl = new Label();
lbl.Content = s.Value;
lbl.Width = 100;
lbl.Height = 50;
lbl.FontSize = 24;
lbl.DragEnter += new DragEventHandler(lbl_DragEnter);
lbl.MouseMove += new MouseEventHandler(lbl_MouseMove);
lbl.MouseDown +=new MouseButtonEventHandler(lbl_MouseDown);
// lbl.MouseUp +=new MouseButtonEventHandler(lbl_MouseUp);
dockPanel1.Children.Add(lbl);
}
我這裏有兩個問題。
1st。我正在使用tbox.drop事件來顯示MessageBox.Show(something);當拖動目標正在放下但不起作用時顯示一個消息框。
這裏是我的代碼:
private void tbox_Drop(object sender, DragEventArgs e)
{
MessageBox.Show("Are you sure?");
}
其次,我也希望在拖動目標被丟棄,因爲我可能有其他的阻力目標投進TBOX之前清除tbox.Text。所以我想清除tbox.Text並拖動拖動目標每當我拖動目標文本框。
我該怎麼做?我被困在哪個事件我應該使用這個,我如何從這些事件處理程序訪問Tbox?
你可以顯示你在做什麼鼠標下降事件? – Nitesh