Übertragen von Text und Grafiken mit der Zwischenablage (Clipboard)

Das Clipboard-Objekt hat keine Eigenschaften oder Ereignisse, aber mehrere Methoden, mit denen Sie Daten in die Zwischenablage der Umgebung und aus dieser übertragen können. Die Clipboard-Methoden sind in drei Kategorien unterteilt. Die Methoden GetText und SetText werden zum Übertragen von Text eingesetzt. Die Methoden GetData und SetData übertragen Grafiken. Die Methoden GetFormat und Clear können sowohl mit Text- als auch Grafikformaten eingesetzt werden.

Ausschneiden, Kopieren und Einfügen von Text über die Zwischenablage

SetText und GetText stellen zwei der nützlichsten Clipboard-Methoden dar. Diese beiden Methoden übertragen Zeichenfolgendaten in die und von der Zwischenablage, siehe Abbildung 38

Abbildung 38:   
Verschieben von Daten
mit SetText und GetText
in die und von der Zwischenablage

SetText kopiert Text in das Clipboard-Objekt und ersetzt dabei den zuvor dort abgelegten Text. SetText wird wie eine Anweisung eingesetzt und hat folgende Syntax:

Clipboard.SetText Daten[, Format]

GetText gibt im Clipboard-Objekt gespeicherten Text zurück. Diese Methode wird wie eine Funktion eingesetzt:

Ziel = Clipboard.GetText()

Wenn Sie die Methoden SetText und GetText mit den unter "Arbeiten mit ausgewähltem Text" vorgestellten Auswahleigenschaften kombinieren, können Sie problemlos die Befehle Kopieren, Ausschneiden und Einfügen für ein Textfeld schreiben. Die folgenden 3 Ereignisprozeduren implementieren diese Befehle für die Steuerelemente namens "mnuCopy", "mnuCut" und "mnuPaste":

Private Sub mnuCopy_Click ()

     Clipboard.Clear

     Clipboard.SetText Text1.SelText

End Sub

 

Private Sub mnuCut_Click ()

     Clipboard.Clear

     Clipboard.SetText Text1.SelText

     Text1.SelText = ""

End Sub

Private Sub mnuPaste_Click ()

   Text1.SelText = Clipboard.GetText()

End Sub

 

Denken Sie daran, dass sowohl die Kopier- als auch die Ausschneideprozedur zunächst das Clipboard-Objekt mit der Clear-Methode leeren. Dann kopiert sowohl die Kopier- als auch die Ausschneideprozedur den in Text1 ausgewählten Text mit der folgenden Anweisung in das Clipboard-Objekt:

Clipboard.SetText Text1.SelText

Beim Befehl Einfügen gibt die GetText-Methode die momentan im Clipboard-Objekt enthaltene Zeichenfolge zurück. Dann kopiert eine Zuweisungsanweisung diese Zeichenfolge in den ausgewählten Bereich des Textfeldes (Text1.SelText). Wurde kein Text ausgewählt, positioniert Visual Basic diesen Text an der Einfügemarke im Textfeld:

Text1.SelText = Clipboard.GetText()

Dieser Code geht davon aus, dass der gesamte Text in das Textfeld Text1 und von diesem übertragen wird, dass der Benutzer aber zwischen Text1 und den Steuerelementen in anderen Formularen kopieren, ausschneiden und einfügen kann.

Da das Clipboard-Objekt von der gesamten Umgebung gemeinsam benutzt wird, kann der Benutzer auch Text zwischen Text1 und einer beliebigen, die Zwischenablage verwendenden Anwendung übertragen.

Arbeiten mit der ActiveControl-Eigenschaft

Wenn die Befehle Kopieren, Ausschneiden und Einfügen bei einem beliebigen Textfeld, das den Fokus besitzt, funktionieren sollen, verwenden Sie die ActiveControl-Eigenschaft des Screen-Objekts. Der folgende Code stellt einen Verweis auf das Steuerelement dar, das den Fokus besitzt:

Screen.ActiveControl

Dieser Verweis wird dann anstelle des direkten Verweises auf das Textfeld-Objekt benutzt, z.B.:

   Clipboard.SetText Screen.ActiveControl.SelText       bzw.

   Screen.ActiveControl.SelText = Clipboard.GetText()