J'ai une TreeView et une zone de texte multiligne ensemble sur le même formulaire dans un formulaire Windows. J'ai glisser et déposez l'installation de sorte que je puisse faire glisser un noeud de la TreeView sur la zone de texte et insérer du texte dans la zone de texte (cela fonctionne).Comment faire pour déplacer insert insertion sur la zone de texte lors de l'acceptation d'une suppression
Je voudrais améliorer cela de sorte que lorsque la souris est déplacée sur la zone de texte, une sorte d'indicateur se déplace dans le texte montrant l'utilisateur où le texte sera inséré, et lorsqu'il est déposé, il est inséré à cette position. Actuellement, je viens de mettre le texte à SelectionStart, mais l'opération de glisser ne met pas à jour SelectionStart donc c'est là où l'utilisateur a eu le curseur en dernier.
Voici mon code actuel:
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
if (e.Button != MouseButtons.Left)
return;
object item = e.Item;
treeView1.DoDragDrop(((TreeNode)item).Tag.ToString(), DragDropEffects.Copy | DragDropEffects.Scroll);
}
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.StringFormat))
{
e.Effect = DragDropEffects.Copy | DragDropEffects.Scroll;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.StringFormat))
{
textBox1.SelectionLength = 0;
textBox1.SelectedText = (string)e.Data.GetData(DataFormats.StringFormat);
}
}
C'est ce que je cherchais. Merci! –