Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Dra och släpp-åtgärder med Windows Forms RichTextBox-kontrollen utförs genom att hantera händelserna DragEnter och DragDrop. Därför är dra och släpp-åtgärder extremt enkla med RichTextBox kontroll.
Aktivera dra-åtgärder i en RichTextBox-kontroll
Ange egenskapen AllowDrop för kontrollen RichTextBox till
true.Skriv kod i händelsehanteraren för den DragEnter händelsen. Använd en
if-instruktion för att säkerställa att data som dras är av en acceptabel typ (i det här fallet text). Egenskapen DragEventArgs.Effect kan anges till valfritt värde för DragDropEffects uppräkning.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# och Visual C++) Placera följande kod i formulärets konstruktor för att registrera händelsehanteraren.
this.richTextBox1.DragEnter += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragEnter);this->richTextBox1->DragEnter += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragEnter);Skriv kod för att hantera händelsen DragDrop. Använd metoden DataObject.GetData för att hämta data som håller på att dras.
I exemplet nedan anger koden egenskapen Text för kontrollen RichTextBox lika med de data som dras. Om det redan finns text i kontrollen RichTextBox infogas den dragna texten vid insättningspunkten.
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# och Visual C++) Placera följande kod i formulärets konstruktor för att registrera händelsehanteraren.
this.richTextBox1.DragDrop += new System.Windows.Forms.DragEventHandler (this.richTextBox1_DragDrop);this->richTextBox1->DragDrop += gcnew System::Windows::Forms::DragEventHandler (this, &Form1::richTextBox1_DragDrop);
Testa dra och släpp-funktionerna i ditt program
Spara och skapa ditt program. Kör WordPad medan ett annat program redan körs.
WordPad är en textredigerare som installeras av Windows och som tillåter dra och släpp-åtgärder. Det är tillgängligt genom att klicka på knappen Starta, välja Kör, skriva
WordPadi textrutan i dialogrutan Kör och klicka sedan på OK.När WordPad är öppet skriver du en textsträng i den. Använd musen, markera texten och dra sedan den markerade texten till RichTextBox-kontrollen i Windows-programmet.
Observera att när du för musen över RichTextBox-kontrollen (och därmed utlöser händelsen DragEnter), ändras muspekaren och du kan släppa in den markerade texten i RichTextBox-kontrollen.
När du släpper musknappen tas den markerade texten bort (dvs. händelsen DragDrop aktiveras) och infogas i kontrollen RichTextBox.
Se även
.NET Desktop feedback