Unser heutiger Tip zeigt Ihnen in einem ganz einfachen Beispiel, wie Sie eine Intellisense-Funktion für die RichTextBox erstellen können. Einsatzmöglichkeiten herfür bieten zum Beispiel ein HTML-Editor, Textvorlagen für ein eMail-Programm und noch viele andere Dinge mehr. Das Beispiel ist um ein vielfaches ausbaubar und bei weitem nicht vollständig. Eine Idee wäre zum Beispiel noch was passiert, wenn jemand die Taste "#" in der RTB drückt, dann aber doch keine Vorlage haben möchte... Erstellen Sie ein neues Windows-Forms-Projekt, platzieren auf die Form ein RichTextBox-Control und ein ListBox-Control und fügen nachfolgenden Code in den Codeteil der Form ein: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Hinzufügen von Einträgen in der ListBox With ListBox1.Items .Insert(0, "VB@rchiv") .Insert(1, "Briefanrede") .Insert(2, "Briefabschluss") .Insert(3, "Datum und Uhrzeit") .Insert(4, "Irgend ein Text...") End With ' Listbox ausblenden ListBox1.Visible = False End Sub Private Sub RichTextBox1_KeyPress(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPress ' Wenn Taste # gedrückt If e.KeyChar = "#" Then ' ListBox soll unmittelbar unter dem zuletzt ' eingegbenen Zeichen erscheinen With RichTextBox1 ListBox1.Left = .GetPositionFromCharIndex( _ .SelectionStart).X + .Left + 10 ListBox1.Top = .GetPositionFromCharIndex( _ .SelectionStart).Y + .Top + 20 ' Jetzt ListBox einblendenden, Focus auf diese setzen ' und den ersten Eintrag selektieren ListBox1.Visible = True ListBox1.Focus() ListBox1.SelectedIndex = 0 End With End If End Sub Private Sub ListBox1_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ListBox1.KeyPress ' Wurde die Entertaste in der ListBox gedrückt? If Asc(e.KeyChar) = Keys.Enter Then With RichTextBox1 Dim strTag As String = ListBox1.SelectedItem ' Auswerten des Eintrages der ListBox und ' Umwandlung in den entsprechenden Wert der ' in die RTB eingefügt werden soll Select Case strTag Case "VB@rchiv" strTag = "vbarchiv.net" Case "Briefanrede" strTag = "Sehr geehrter Benutzer," Case "Briefabschluss" strTag = "Mit besten Wünschen," Case "Datum und Uhrzeit" strTag = Now() Case "Irgend ein Text..." strTag = "Irgend ein Text..." Case Else strTag = "" End Select ' Das "Steuerzeichen" # ersetzen durch einen NullString .Text = Replace(.Text, "#", vbNullString) & strTag ' wo soll der Cursor nach dem Einfügen in der RTB stehen? .SelectionStart = .TextLength ' Listbox wieder auf den ersten Eintrag setzen ' und ausblenden ListBox1.SelectedItem = 0 ListBox1.Visible = False ' Focus wieder auf RTB setzen .Focus() End With End If End Sub End Class Dieser Tipp wurde bereits 15.449 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
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. |