拖拽使用C#将标签文本拖放到TextBox中

时间:2016-10-27 06:30:51

标签: c# events textbox drag-and-drop label

我想在文本框中拖放标签时将文本添加到文本框中,到目前为止,我使用以下方法完成了它。考虑到我已经在文本框中有一些文本,现在当我删除标签时它将文本添加到结尾,我明白这是因为我正在添加textbox = textbox + labelcontents。

还有其他方法,将文本添加到被删除的同一位置,并且所有以前的文本保持不变。我们可以使用位置点吗?

在表单默认构造函数中:

lblBreakStartTime.MouseDown += new MouseEventHandler(lblBreakStartTime_MouseDown);    
txtBoxDefaultEnglish.AllowDrop = true;
txtBoxDefaultEnglish.DragEnter += new DragEventHandler(txtBoxDefaultEnglish_DragEnter);
txtBoxDefaultEnglish.DragDrop += new DragEventHandler(txtBoxDefaultEnglish_DragDrop);

标记的鼠标按下事件将被删除:

private void lblBreakStartTime_MouseDown(object sender, MouseEventArgs e)
        {
            DoDragDrop("START_TIME", DragDropEffects.Copy);
        }

文本框事件:

private void txtBoxDefaultEnglish_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy;
        }
        private void txtBoxDefaultEnglish_DragDrop(object sender, DragEventArgs e)
        {

       txtBoxDefaultEnglish.Text = txtBoxDefaultEnglish.Text + " " + "[" + (string)e.Data.GetData(DataFormats.Text) + "]";
       txtBoxDefaultEnglish.SelectionStart = txtBoxDefaultEnglish.Text.Length;
    }

1 个答案:

答案 0 :(得分:1)

试试这个:

query.Skip(pageNumber - 1).Take(pageSize * pageNumber).AsQueryable();