Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Drag-and-Drop-Vorgänge mit dem Windows Forms-Steuerelement RichTextBox werden durch das Behandeln der Ereignisse DragEnter und DragDrop durchgeführt. Daher sind Drag-and-Drop-Vorgänge mit dem RichTextBox Steuerelement extrem einfach.
So aktivieren Sie Drag-Vorgänge in einem RichTextBox-Steuerelement
Legen Sie die AllowDrop-Eigenschaft des RichTextBox-Steuerelements auf
truefest.Schreiben Sie Code im Ereignishandler des DragEnter Ereignisses. Verwenden Sie eine
ifAnweisung, um sicherzustellen, dass die gezogenen Daten einen akzeptablen Typ aufweisen (in diesem Fall Text). Die DragEventArgs.Effect Eigenschaft kann auf einen beliebigen Wert der DragDropEffects Enumeration festgelegt werden.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 Subprivate 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# und Visual C++) Platzieren Sie den folgenden Code im Konstruktor des Formulars, um den Ereignishandler zu registrieren.
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragEnter);this->richTextBox1->DragEnter += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragEnter);Schreiben Sie Code zur Behandlung des DragDrop-Ereignisses. Verwenden Sie die DataObject.GetData Methode, um die gezogenen Daten abzurufen.
Im folgenden Beispiel setzt der Code die Text Eigenschaft des RichTextBox Steuerelements gleich den Daten, die verschoben werden. Wenn bereits Text im RichTextBox Steuerelement vorhanden ist, wird der gezogene Text an der Einfügemarke eingefügt.
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 Subprivate 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# und Visual C++) Platzieren Sie den folgenden Code im Konstruktor des Formulars, um den Ereignishandler zu registrieren.
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragDrop);this->richTextBox1->DragDrop += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragDrop);
So testen Sie die Drag-and-Drop-Funktionalität in Ihrer Anwendung
Speichern und erstellen Sie Ihre Anwendung. Führen Sie WordPad aus, während es läuft.
WordPad ist ein von Windows installierter Text-Editor, der Drag-and-Drop-Vorgänge zulässt. Auf sie kann zugegriffen werden, indem Sie auf die Schaltfläche "Start" klicken, "Ausführen" auswählen, das Textfeld des Dialogfelds "
WordPad" eingeben und dann auf "OK" klicken.Sobald WordPad geöffnet ist, geben Sie eine Textzeichenfolge darin ein. Markieren Sie mit der Maus den Text, und ziehen Sie dann den markierten Text auf das RichTextBox Steuerelement in Ihrer Windows-Anwendung.
Beachten Sie, dass sich der Mauszeiger ändert, wenn Sie mit der Maus auf das RichTextBox Steuerelement zeigen (und daher das DragEnter Ereignis auslösen), und Sie können den markierten Text in das RichTextBox Steuerelement ablegen.
Wenn Sie die Maustaste loslassen, wird der markierte Text abgelegt (d. h. das DragDrop Ereignis wird ausgelöst) und in das RichTextBox Steuerelement eingefügt.
Siehe auch
.NET Desktop feedback