VB 5/6-Tipp 0289: Demonstration der Methoden und Ereignisse einer TextBox
von Daniel Flandorfer
Beschreibung
Dieses Beispiel erklärtt den grundsätzlichen Umgang mit der TextBox, wie z.B. das Änderen von Schrift- und Hintergrundfarbe, das Abspeichern und wieder Laden des Inhaltes und Einfügen aus der Zwischenablage.Zudem wird gezeigt wie durch den Trick des Überblendens eine TextBox zur Laufzeit scheinbar ihre MultiLine-Eigenschaft ändert.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- ' Die Komponente 'Microsoft Common Dialog Control 6.0 (SP3) (COMDLG32.OCX)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Rahmensteuerelement "frmClipboard" ' Steuerelement: Schaltfläche "cmdClipboard" auf frmClipboard ' Steuerelement: Schaltfläche "cmdPaste" auf frmClipboard ' Steuerelement: Schaltfläche "cmdClear" ' Steuerelement: Schaltfläche "cmdSave" ' Steuerelement: Schaltfläche "cmdopen" ' Steuerelement: Schaltfläche "cmdFGFarbe" ' Steuerelement: Schaltfläche "cmdFarbe" ' Steuerelement: Standarddialog-Steuerelement "mscdlg" ' Steuerelement: Textfeld "txtTextMZ" ' Steuerelement: Rahmensteuerelement "frmZeile" ' Steuerelement: Optionsfeld-Steuerelement "optMehrZeilig" auf frmZeile ' Steuerelement: Optionsfeld-Steuerelement "optEinZeilig" auf frmZeile ' Steuerelement: Textfeld "txtTextEZ" 'Autor: Daniel Flandorfer 'E-Mail: Daniel.Flandorfer@winterthur.at 'Inet: Daniel http://www.albundy.net 'Globale Variable für das Clipboard Private strClipboard As String Private Sub Form_Load() 'Initialisierung... txtTextEZ.Visible = False optMehrZeilig.Value = True End Sub Private Sub cmdClear_Click() 'Löscht beide Textfelder, indem man nichts reinschreibt txtTextMZ.Text = "" txtTextEZ.Text = "" End Sub Private Sub cmdClipboard_Click() 'Stellt den Selectierten (kommt von Textbox.mouseup) 'Text ins Clipboard Clipboard.SetText strClipboard End Sub Private Sub CmdFarbe_Click() 'Öffnet den Standarddialog für Farbauswahl mscdlg.ShowColor 'Setzt die Hintergrundfarbe für beide Textboxen txtTextMZ.BackColor = mscdlg.Color txtTextEZ.BackColor = mscdlg.Color End Sub Private Sub cmdFGFarbe_Click() 'Öffnet den Standarddialog für Farbauswahl mscdlg.ShowColor 'Setzt die Textfarbe gleich für beide Textboxen txtTextMZ.ForeColor = mscdlg.Color txtTextEZ.ForeColor = mscdlg.Color End Sub Private Sub cmdOpen_Click() 'Öffnet den Standarddialog ÖFFNEN und liest das selektierte 'File aus Dim InputData As String Dim All As String 'Setzt den Filter für den Öffnen Dialog mscdlg.Filter = "Textdateien | *.txt" 'Zeigt den Öffnendialog an mscdlg.ShowOpen 'Falls nichts ausgewählt wurde überspringe das ganze... If mscdlg.FileName <> "" Then 'Öffne gewähltes File zum Lesen Open mscdlg.FileName For Input As #1 'Solange wir nicht am Ende des Files sind, lesen wir 'Zeile für Zeile aus und hängen sie einer Variable an! Do While Not EOF(1) Line Input #1, InputData All = All & InputData Loop 'Datei schließen Close #1 'Schreibt den Text in die aktive Textbox If optMehrZeilig.Value = True Then txtTextMZ.Text = All Else txtTextEZ.Text = All End If End If End Sub Private Sub cmdPaste_Click() 'Holt sich Text aus der Zwischenablage und fügt ihn ein 'Falls etwas da ist ... If Clipboard.GetText <> "" Then '... schreiben wir es in beide Textboxen txtTextMZ.Text = Clipboard.GetText txtTextEZ.Text = Clipboard.GetText Else 'Sonst Meldung MsgBox ("Kein Text in der Zwischenablage...") End If End Sub Private Sub cmdSave_Click() 'Zeigt den Standard Save Dialog an und speichert den 'Textboxinhalt 'Setzt den Filter mscdlg.Filter = "Textdateien | *.txt" 'Zeigt den Dialog an mscdlg.ShowSave 'Fall etwas ausgeählt wurde ... If mscdlg.FileName <> "" Then '... öffne/erzeuge File Open mscdlg.FileName For Output As #1 'Benütze Print Funktion, da Write ein "" an den Text 'anhängt!! If optMehrZeilig.Value = True Then ' schreibe aktiven TextBoxInhalt ins File Print #1, txtTextMZ.Text Else Print #1, txtTextEZ.Text End If 'File schließen Close #1 End If End Sub Private Sub Form_Unload(Cancel As Integer) Form1.Hide MsgBox ("Visit:" & Chr(13) & " http://www.albundy.net") End Sub Private Sub optEinZeilig_Click() 'Wenn EinZeilig geclickt wird, dann drehen wir alles um 'Kopieren des Textes txtTextEZ.Text = txtTextMZ.Text 'Verstecken, da anderes Control txtTextMZ.Visible = False 'Neues anzeigen txtTextEZ.Visible = True '... und Übernehmen der Eigenschaften txtTextEZ.BackColor = txtTextMZ.BackColor txtTextEZ.ForeColor = txtTextMZ.ForeColor End Sub Private Sub optMehrZeilig_Click() 'Siehe obige Funktion txtTextMZ.Text = txtTextEZ.Text txtTextEZ.Visible = False txtTextMZ.Visible = True txtTextMZ.BackColor = txtTextEZ.BackColor txtTextMZ.ForeColor = txtTextEZ.ForeColor End Sub Private Sub txtTextMZ_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) 'Fügt den selektierten Text ins Clipboard ein. Wir nehmen 'an daß wenn der Mousebutton gelöst wird, daß etwas markiert 'wurde und schreiben das in eine Variable, welche beim Drücken 'des Kopier Buttons in die Zwischenablage kopiert wird! strClipboard = Screen.ActiveControl.SelText End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.