私はプログラミングが初めてで、ここでドラッグ アンド ドロップをしようとしています。今はドラッグ アンド ドロップできますが、ドラッグ アンド ドロップするカスタム カーソルは醜いです。カーソルとしてドラッグしている要素をドラッグするにはどうすればよいですか? 私はオンラインで検索し、アドナーについての言及を見つけましたが、コードさえ理解していません. これを行うための単純または単純化されたより良い方法はありますか?
ここにドラッグアンドドロップできるこのコードがあります(forループでテキストボックスとラベルを動的に作成し、テキストを取得してデータベースからラベルに追加します:
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.PreviewDrop += 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());
}
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);
dockPanel1.Children.Add(lbl);
}
ラベル (ドラッグ ターゲット) をテキスト ボックス (ドロップ ターゲット) にドラッグしています。どのイベントを使用すればよいですか?また、ドラッグ カーソルをドラッグしているラベルに設定するイベントをどのように記述すればよいですか?
atm を使用したイベントは次のとおりです。
private void tbox_Drop(object sender, DragEventArgs e)
{
MessageBox.Show("Are you sure ? Wrong don't blame me ");
(sender as TextBox).Text = string.Empty;
}
private void lbl_DragEnter(object sender, DragEventArgs e)
{
if (sender == e.Source)
{
e.Effects = DragDropEffects.None;
}
}
解決策や助けをいただければ幸いです。私は adorner を見てきましたが、その方法は複雑すぎて理解できず、実装できませんでした。これを行うためのシンプルで単純化された方法を探しています。