vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls · TextBox & RichTextBox   |   VB-Versionen: VB5, VB609.06.05
autom. Kopieren/Einfügen im RTF-Control unterdrücken

Dieser Tipp zeigt, wie sich das autom. Kopieren und Einfügen von Text in einem RichTextBox-Control unterdrücken lässt.

Autor:   Dieter OtterBewertung:  Views:  14.501 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Folgendes Szenario: Sie verwenden statt einer normalen TextBox ein RichTextBox-Control. Über ein Menü stellen Sie dem Anwender auch Befehle zum Kopieren und Einfügen von Text zur Verfügung. Den beiden Menübefehlen haben Sie zudem die gängigen Shortcuts Strg+C und Strg+V zugewiesen. Verwendet man jetzt aber bspw. direkt innerhalb des RTF-Controls den Shortcut Strg+V, so wird der Inhalt der Zwischenablage doppelt eingefügt Grund hierfür ist, dass das RTF-Control selbständig auf die Tastenkombination STRG+V reagiert, aber gleichzeitig auch noch der Menübefehl ausgelöst wird, da diesem der Shortcut Strg+V zugewiesen wurde.

Um das autom. Kopieren/Einfügen im RTF-Control zu unterdrücken, gehen Sie wie folgt vor:

Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
  ' Tasten abfragen
  Select Case KeyCode
    Case vbKeyC, vbKeyV, vbKeyX
      ' Strg+C/Strg+V/Strg+X unterdrücken
      If Shift = 2 Then KeyCode = 0
    Case vbKeyInsert
      ' Strg+Insert -> Kopieren unterdrücken
      If Shift = 2 Then
        KeyCode = 0
        ' hier ggf. direkt den eigenen Menübefehl auslösen
        mnuCopy_Click
      ElseIf Shift = 1 Then
        ' Umsch+Insert -> Einfügen unterdrücken
        KeyCode = 0
        ' hier ggf. direkt den eigenen Menübefehl auslösen
        mnuPaste_Click
      End If
    Case vbKeyDelete
      If Shift = 1 Then
        ' Umsch+Delete -> Ausschneiden unterdrücken
        KeyCode = 0
        ' hier ggf. direkt den eigenen Menübefehl auslösen
        mnuCut_Click
      End If
  End Select
End Sub
' Kopieren (Strg+C)
Private Sub mnuCopy_Click()
  With RichTextBox1
    If Len(.SelText) > 0 Then Clipboard.SetText .SelText
  End With
End Sub
' Einfügen (Strg+V)
Private Sub mnuPaste_Click()
  If Clipboard.GetFormat(vbCFText) Then
    RichTextBox1.SelRTF = Clipboard.GetText()
  End If
End Sub
' Ausschneiden (Strg+X)
Private Sub mnuCut_Click()
  With RichTextBox1
    If Len(.SelText) > 0 Then 
      Clipboard.SetText .SelText
      .SelText = ""
    End If
  End With
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.