Procedura: Abilitare operazioni di trascinamento con il controllo RichTextBox di Windows Form
Le operazioni di trascinamento della selezione del controllo RichTextBox di Windows Form vengono eseguite gestendo gli eventi DragEnter e DragDrop . Quindi, le operazioni di trascinamento della selezione risultano molto semplici con il controllo RichTextBox .
Per abilitare le operazioni di trascinamento in un controllo RichTextBox
Impostare la proprietà AllowDrop del controllo RichTextBox su
true
.Scrivere il codice nel gestore eventi per l'evento DragEnter . Usare un'istruzione
if
per assicurarsi che i dati trascinati siano di un tipo accettabile (in questo caso, testo). La proprietà DragEventArgs.Effect può essere impostata su uno qualsiasi dei valori dell'enumerazione DragDropEffects .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# e Visual C++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragEnter);
this->richTextBox1->DragEnter += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragEnter);
Scrivere codice per gestire l'evento DragDrop . Usare il metodo DataObject.GetData per recuperare i dati trascinati.
Nell'esempio seguente il codice imposta la proprietà Text del controllo RichTextBox uguale ai dati trascinati. Se il testo è già presente nel controllo RichTextBox , il testo trascinato viene inserito nel punto di inserimento.
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# e Visual C++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragDrop);
this->richTextBox1->DragDrop += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragDrop);
Per testare la funzionalità di trascinamento della selezione nell'applicazione
Salvare e compilare l'applicazione. Durante l'esecuzione, eseguire WordPad.
WordPad è un editor di testo installato da Windows che consente operazioni di trascinamento della selezione. È accessibile premendo Start , selezionando Eseguie digitando
WordPad
nella casella di testo della finestra di dialogo Esegui , quindi facendo clic su OK.Una volta aperto WordPad, digitare una stringa di testo al suo interno. Usando il mouse, selezionare il testo e quindi trascinarlo sul controllo RichTextBox nell'applicazione Windows.
Quando si passa il mouse sul controllo RichTextBox (e, di conseguenza, si genera l'evento DragEnter ), il puntatore del mouse cambia ed è possibile rilasciare il testo selezionato nel controllo RichTextBox .
Quando si rilascia il pulsante del mouse, il testo selezionato viene rilasciato (ossia, viene generato l'evento DragDrop ) e viene inserito all'interno del controllo RichTextBox .
Vedi anche
.NET Desktop feedback
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per