每當將標籤拖放到文本框內時,我都希望將文本添加到文本框中,到目前爲止,我已使用下面的方法完成了該操作。考慮我已經在文本框中有一些文本,現在當我放下標籤時,它添加了文本結束,我明白這是因爲我添加了textbox = textbox + labelcontents。使用C拖放標籤文本到文本框中#
是否有任何其他方式,將文本添加到刪除相同的位置,並且所有以前的文本保持不變。我們可以使用位置點嗎?
在表單中默認的構造函數:
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;
}
剛剛找到解決方案,其非常簡單,我只需要使用光標位置。 'int CursorPos = txtBoxDefaultEnglish.SelectionStart;''txtBoxDefaultEnglish.Text = txtBoxDefaultEnglish.Text.Insert(CursorPos,「[」+(string)e.Data.GetData(DataFormats.Text)+「]」);' –
作爲回答並請接受。也許對別人有幫助;) – Sebi
@Nisar,你可以在光標位置插入你的文本,但不能在放置位置 –