Heute möchten wir Ihnen eine ComboBox vorstellen, in der alle verfügbaren Schriften zur Auswahl angezeigt werden. Die jeweiligen Einträge sollen hierbei selbstverständlich in der jeweiligen Schriftart angezeigt werden! Das Füllen der ComboBox mit den verfügbaren Schriften erledigen wir im Form_Load Ereignis. Hier wird dem Control dann auch mitgeteilt, dass die Darstellung der Listen-Elemente nicht autom. erfolgen soll, sondern von uns selbst gezeichnet werden, was durch Setzen der DrawMode-Eigenschaft auf "OwnerDrawFixed" festgelegt wird. Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' alle verfügbaren Schriften auflisten With ComboBox1.Items For Each oFont As FontFamily In Font.FontFamily.Families .Add(oFont) Next End With ' Wir möchten uns um die Ausgabe der ' Listen-Einträge selbst kümmern ComboBox1.DrawMode = DrawMode.OwnerDrawFixed End Sub Wann immer jetzt ein Eintrag der ComboBox-Liste gezeichnet werden muss, löst das Control das DrawItem-Ereignis aus, d.h. hier muss unser Code zum Zeichnen des Eintrags eingefügt werden: Private Sub ComboBox1_DrawItem(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem ' ComboBox-Eintrag (Schriftname) Dim sItem As String = ComboBox1.Items(e.Index).Name Dim oFont As Font ' Neues Schrift-Objekt erzeugen und verfügbare Styles berücksichtigen Dim oFamily As FontFamily = ComboBox1.Items(e.Index) If oFamily.IsStyleAvailable(FontStyle.Regular) Then oFont = New Font(sItem, ComboBox1.Font.Size, FontStyle.Regular) ElseIf oFamily.IsStyleAvailable(FontStyle.Italic) Then oFont = New Font(sItem, ComboBox1.Font.Size, FontStyle.Italic) ElseIf oFamily.IsStyleAvailable(FontStyle.Bold) Then oFont = New Font(sItem, ComboBox1.Font.Size, FontStyle.Bold) ElseIf oFamily.IsStyleAvailable(FontStyle.Underline) Then oFont = New Font(sItem, ComboBox1.Font.Size, FontStyle.Underline) Else oFont = New Font(sItem, ComboBox1.Font.Size, FontStyle.Strikeout) End If ' Brush für Textfarbe Dim oBrush As Brush = New SolidBrush(e.ForeColor) ' Hintergrund e.DrawBackground() ' Text (Schriftname) ausgeben e.Graphics.DrawString(sItem, oFont, oBrush, e.Bounds.X, e.Bounds.Y) ' Aufräumen oBrush.Dispose() End Sub Dieser Tipp wurde bereits 18.315 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. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |