ラベルをドラッグアンドドロップしてテキストボックスに入れるときは、以下の方法でテキストを入力します。私はすでにテキストボックスにテキストがあると考えています。今は、テキストを最後に追加するラベルをドロップすると、テキストボックス=テキストボックス+ラベルコンテンツを追加していることがわかります。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、" ["+"文字列e.Data.GetData(DataFormats.Text)+ "]") "); –
よく投稿してください答えとして、それを受け入れてください。 ) – Sebi
@Nisar、カーソル位置にテキストを挿入できますが、ドロップされた場所には挿入できません –