lunes, 25 de abril de 2011

Drag And Drop en TextBox

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.

2 comentarios:

  1. Holaaa! q tal? q de tiempo jeje, oye espero que te vaya super bien :)

    Respecto la entrada, hace tiempo estuve experimentando con el drag and drop, y me funcionó muy bien, pero se me borró :( .. ( estoy trabajando en una aplicacion, un juego en la que quería incluir esa funcion)

    Cuando la termine ( si lo consigo algun dia, ya que es por cuenta propia el proyecto jeje) ya lo contaré, igual me animo a compartir el código y demas para ayudar a otras personas jeje

    Un besazoo! ^^

    ResponderEliminar
  2. Hola Fany, gracias por apoyar la causa, esa es la idea, compartir código y permitir que los nuevos programadores creen mejor código, es la ley de la vida jejejeje....

    Si te puedo ayudar con tu proyecto sería interesante (o pongo a mis alumnos a que lo programen jejejeje)

    Buscame en FaceBook para estar en contacto

    Saluditos

    ResponderEliminar