リストボックスからアイテムをドラッグしてテキストボックスに入れようとしています。それは私にとってはうまくいきます。2番目のアイテムを同じテキストボックスにドラッグしようとすると、テキストボックスに含まれる最後のテキストに追加されます。アイテムをテキストボックスにドラッグした位置に貼り付けたいです。私はこれまで次のコードを使用しています
private void Form1_Load(object sender, System.EventArgs e) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0)
listBoxControl1.Items.Add("Item " + i.ToString());
}
private void listBoxControl1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {
ListBoxControl c = sender as ListBoxControl;
p = new Point(e.X, e.Y);
int selectedIndex = c.IndexFromPoint(p);
if (selectedIndex == -1)
p = Point.Empty;
}
private void listBoxControl1_MouseMove(object sender,System.Windows.Forms.MouseEventArgs e) {
if (e.Button == MouseButtons.Left)
if ((p != Point.Empty) && ((Math.Abs(e.X - p.X) > 5) || (Math.Abs(e.Y - p.Y) > 5)))
listBoxControl1.DoDragDrop(sender, DragDropEffects.Move);
}
private void textEdit1_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void textEdit1_DragDrop(object sender, DragEventArgs e)
{
TextEdit textBox1 = sender as TextEdit;
Point newPoint = new Point(e.X, e.Y);
newPoint = textBox1.PointToClient(newPoint);
object item = listBoxControl1.Items[listBoxControl1.IndexFromPoint(p)];
if (textBox1.Text == "")
{
textBox1.Text = item.ToString();
}
else
{
textBox1.Text = textBox1.Text + "," + item.ToString();
}
listBoxControl1.Items.Remove(item);
}