Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.
Markierung automatisch kopieren
Manchmal möchten Sie vielleicht schnell den kompletten Inhalt oder auch Ausschnitte von einem Textfeld in ein anderes übernehmen. Dann markieren Sie diesen, kopieren ihn, beispielsweise mit der Tastenkombinatino Strg + C, und fügen ihn mit Strg + V in das Zieltextfeld ein. Das ist für den Alltag schnell genug, so Sie denn die Tastenkombinationen aus dem Stegreif beherrschen (das ist längst nicht immer der Fall!). Wenn Sie jedoch häufiger Inhalte von Textfeld A nach Textfeld B übertragen wollen, gibt es einen viel eleganteren Weg. Schauen Sie selbst!
Mit dem Beispiel des vorliegenden Beitrags wollen wir zeigen, wie einfach es ist, den in einem ersten Textfeld markierten Text in ein zweites Textfeld zu kopieren. Dabei soll es zwei auslösende Ereignisse geben. Das erste und einfachere ist die Markierung mit der Maus. Diese beginnt, indem der Benutzer den Start der Markierung durch Herunterdrücken der Maustaste an der entsprechenden Stelle selektiert. Dann bewegt er den Mauszeiger bei gedrückter Maustaste zu der Stelle, die das Ende der Markierung festlegt. Um den Inhalt in das andere Textfeld zu kopieren, muss der Benutzer nun nur noch die Maustaste loslassen. Natürlich gelingt dies auch andersherum: Man kann auch zuerst das Ende der Markierung auswählen und dann weiter vorn an der Startposition die Maustaste loslassen.
Die zweite Variante soll die Markierung mit der Tastatur ermöglichen. Hier positionert der Benutzer die Einfügemarke vor die erste Position des zu markierenden Textes – sei es mit der Maus oder mit den Cursortasten.
Dann erweitert er die Markierung durch Bewegung der Cursortasten bei gedrückter Umschalttaste (für zeichenweisen Vorschub) oder bei zusätzlich gedrückter Strg-Taste (um gleich ganze Wörter zur Auswahl hinzuzufügen). Wenn die gewünschte Auswahl erreicht wurde, lässt er einfach die Umschalttaste los und der markierte Text wird kopiert.
Dies sieht beispielsweise wie in Bild 1 aus. Hier haben wir zunächst den vierten Abschnitt des Quelltextes markiert und so zum Zielfeld hinzugefügt. Dann haben wir den dritten Absatz markiert. Dadurch, dass die Option Neue Zeile ausgewählt ist, landet der markierte Text in der nächsten Zeile hinter dem bereits im Zielfeld vorhandenen Text.
Bild 1: Kopieren von einem Textfeld zum nächsten
Aufbau des Formulars
Der Versuchsaufbau sieht in der Entwurfsansicht wie in Bild 2 aus. Das Formular enthält hauptsächlich zwei Textfelder namens txtQuelle und txtZiel, von denen das Textfeld txtQuelle beim Laden Text anzeigen soll, der durch verschiedene Aktionen in das zweite Textfeld txtZiel kopiert werden soll.
Bild 2: Entwurf des Formulars zum Kopieren von Inhalten per einfacher Markierung
Um genauer festzulegen, wie der Text an den bereits in txtZiel enthaltenen Text angefügt werden soll, gibt es noch eine Optionsgruppe namens ogrModus. Diese bietet zwei mögliche Werte an: Hinten anfügen oder Neue Zeile.
Damit unser Beispielformular beim Öffnen einige Beispielsätze anzeigt, füllen wir dieses in der Ereignisprozedur, die durch das Ereignis Beim Laden des Formulars ausgelöst wird, mit etwas Platzhaltertext.
Dann setzen wir den Fokus auf das Textfeld txtQuelle und heben eine eventuell durch die Einstellung für den Eintritt in das Textfeld vorgesehene Markierung auf, indem wir die Eigenschaft SelLength auf den Wert 0 einstellen:
Private Sub Form_Load()
Dim strTemp As String
strTemp = "Et et aut ..." & vbCrLf & vbCrLf
strTemp = strTemp & "Diate inus ..." & vbCrLf & vbCrLf
strTemp = strTemp & "Erehent, c..." & vbCrLf & vbCrLf
strTemp = strTemp & "Ro etur aut..." & vbCrLf & vbCrLf
strTemp = strTemp & "consed maio..."
Me!txtQuelle = strTemp
Me!txtQuelle.SetFocus
Me!txtQuelle.SelLength = 0
End Sub
Kopieren per Tastatur
Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.