Bueno, este es otro buen ejemplo de como hacer Drag and Drop pero con TextBox, la idea es que al darle click sostenido, puedan seleccionar todo el texto y luego arrastrarlo de un Textbox a otro.
Lo primero, como en otros casos, declarar una variable de tipo Objetc de nombre Origenes que mantendrá la referencia del objeto de donde iniciamos el drag & Drop.
object Origenes;
En el evengo Load del Formulario debemos habilitar el Drag & Drop de cada TextBox ya que por defecto vienen desactivados
textBox1.AllowDrop = true;
textBox2.AllowDrop = true;
Claro, con el nombre que ustedes le den a los textBox y la cantidad de elementos que controles que deseen activar el D&D.
Luego programamos los eventos
MouseDown
DragEnter
DragDrop
Copien y Peguen el siguiente código en su formulario, pero fuera de cualquier evento, ya que lo que van a pegar son eventos.
private void TextBox_MouseDown(object sender, MouseEventArgs e)
{
Origenes = sender;
TextBox txt = (TextBox)sender;
txt.SelectAll();
txt.DoDragDrop(txt.Text, DragDropEffects.Copy);
}
private void TextBox_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void TextBox_DragDrop(object sender, DragEventArgs e)
{
TextBox txt = (TextBox)sender;
TextBox origen=(TextBox)Origenes;
if (txt != origen)
{
txt.Text = (string)e.Data.GetData(DataFormats.Text);
origen.Text = "";
}
}
una vez terminado, solo ejecútenlo y listo.