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.
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: |
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.
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()