Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las operaciones de arrastrar y soltar con el control de Windows Forms RichTextBox se realizan manejando los eventos DragEnter y DragDrop. Por lo tanto, las operaciones de arrastrar y colocar son extremadamente sencillas con el RichTextBox control .
Para habilitar las operaciones de arrastre en un control RichTextBox
Establezca la AllowDrop propiedad del RichTextBox control en
true
.Escriba código en el controlador de eventos del DragEnter evento. Use una
if
instrucción para asegurarse de que los datos que se arrastran son de un tipo aceptable (en este caso, texto). La DragEventArgs.Effect propiedad se puede establecer en cualquier valor de la DragDropEffects enumeración.Private Sub RichTextBox1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles RichTextBox1.DragEnter If (e.Data.GetDataPresent(DataFormats.Text)) Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.None End If End Sub
private void richTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }
private: void richTextBox1_DragEnter(System::Object ^ sender, System::Windows::Forms::DragEventArgs ^ e) { if (e->Data->GetDataPresent(DataFormats::Text)) e->Effect = DragDropEffects::Copy; else e->Effect = DragDropEffects::None; }
(Visual C# y Visual C++) Coloque el código siguiente en el constructor del formulario para registrar el controlador de eventos.
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragEnter);
this->richTextBox1->DragEnter += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragEnter);
Escriba código para controlar el DragDrop evento. Use el DataObject.GetData método para recuperar los datos que se están arrastrando.
En el ejemplo siguiente, el código establece la propiedad Text del control RichTextBox igual a los datos que se están arrastrando. Si ya hay texto en el RichTextBox control, el texto arrastrado se inserta en el punto de inserción.
Private Sub RichTextBox1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles RichTextBox1.DragDrop Dim i As Int16 Dim s As String ' Get start position to drop the text. i = RichTextBox1.SelectionStart s = RichTextBox1.Text.Substring(i) RichTextBox1.Text = RichTextBox1.Text.Substring(0, i) ' Drop the text on to the RichTextBox. RichTextBox1.Text = RichTextBox1.Text + _ e.Data.GetData(DataFormats.Text).ToString() RichTextBox1.Text = RichTextBox1.Text + s End Sub
private void richTextBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { int i; String s; // Get start position to drop the text. i = richTextBox1.SelectionStart; s = richTextBox1.Text.Substring(i); richTextBox1.Text = richTextBox1.Text.Substring(0,i); // Drop the text on to the RichTextBox. richTextBox1.Text = richTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString(); richTextBox1.Text = richTextBox1.Text + s; }
private: System::Void richTextBox1_DragDrop(System::Object ^ sender, System::Windows::Forms::DragEventArgs ^ e) { int i; String ^s; // Get start position to drop the text. i = richTextBox1->SelectionStart; s = richTextBox1->Text->Substring(i); richTextBox1->Text = richTextBox1->Text->Substring(0,i); // Drop the text on to the RichTextBox. String ^str = String::Concat(richTextBox1->Text, e->Data ->GetData(DataFormats->Text)->ToString()); richTextBox1->Text = String::Concat(str, s); }
(Visual C# y Visual C++) Coloque el código siguiente en el constructor del formulario para registrar el controlador de eventos.
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragDrop);
this->richTextBox1->DragDrop += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragDrop);
Para probar la funcionalidad de arrastrar y colocar en la aplicación
Guarde y compile la aplicación. Mientras se ejecuta, ejecute WordPad.
WordPad es un editor de texto instalado por Windows que permite operaciones de arrastrar y colocar. Es accesible haciendo clic en el botón Inicio , seleccionando Ejecutar, escribiendo
WordPad
en el cuadro de texto del cuadro de diálogo Ejecutar y, a continuación, haciendo clic en Aceptar.Una vez abierto WordPad, escriba una cadena de texto en él. Con el mouse, seleccione el texto y, a continuación, arrastre el texto seleccionado al control de la RichTextBox aplicación Windows.
Tenga en cuenta que, al apuntar con el ratón al RichTextBox control (y, en consecuencia, generar el DragEnter evento), el puntero del ratón cambia y puede soltar el texto seleccionado en el RichTextBox control.
Al soltar el botón del ratón, el texto seleccionado se suelta (es decir, se genera el evento DragDrop) y se inserta dentro del control RichTextBox.
Consulte también
.NET Desktop feedback