vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls · TextBox & RichTextBox   |   VB-Versionen: VB2005, VB200813.03.09
Bildsymbol in der TextBox anzeigen

Dieser Tipp zeigt, wie sich ein Bildsymbol (Icon) in der Standard TextBox von VB anzeigen lässt.

Autor:   Dieter OtterBewertung:  Views:  12.571 
www.tools4vb.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Vor einiger Zeit haben wir Ihnen einen Tipp vorgestellt, mit dem sich ein Bildsymbol im Eingabefeld der ComboBox anzeigen lässt:
 Bildsymbol im Eingabefeld der ComboBox anzeigen

Der Code lässt sich auch ohne viel Aufwand bzw. Anpassungen auf eine Standard-TextBox anwenden. In diesem Fall brauchen wir die FindWindow-Funktion nicht einsetzen, da das Handle des Eingabefeldes ja bereits bekannt ist. Der Rest bleibt gleich.

Hier der angepasste Code:
Erstellen Sie ein neues Projekt und platzieren auf die Form eine TextBox (TextBox1), sowie ein PictureBox-Control (PictureBox1). Fügen Sie nachfolgenden Code in den Codeteil der Form oder auch in ein Modul ein.

Public Class Form1
 
  ' benötigte API-Deklarationen
  Private Declare Function SendMessage Lib "user32" _
    Alias "SendMessageA" ( _
    ByVal hwnd As IntPtr, _
    ByVal wMsg As Integer, _
    ByVal wParam As Integer, _
    ByVal lParam As Integer) As Integer
 
  Private Const EC_LEFTMARGIN = &H1
  Private Const EM_SETMARGINS = &HD3
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
 
    TextBox_AddPicture(Me, TextBox1, PictureBox1)
  End Sub
  ' Bild in Standard-TextBox anzeigen
  Public Sub TextBox_AddPicture(ByVal oForm As Form, _
    ByVal oTextBox As TextBox, _
    ByVal oPictureBox As PictureBox)
 
    Dim nLeft As Integer
 
    With oTextBox
      ' PictureBox-Hintergrund dem Eingabefeld anpassen
      oPictureBox.BackColor = .BackColor
 
      ' PictureBox in das Eingabefeld platzieren
      oPictureBox.Location = New Point(.Left + 4, .Top + 3)
      oPictureBox.BringToFront()
 
      ' linken Rand des Eingabefeldes neu festlegen
      nLeft = oPictureBox.Width + 3
      Call SendMessage(.Handle.ToInt32, EM_SETMARGINS, EC_LEFTMARGIN, nLeft)
    End With
  End Sub
End Class

Das Bildsymbol selbst (Icon) kann entweder zur Entwurfszeit festgelegt werden (Image-Eigenschaft der PictureBox) oder zur Laufzeit zugeordnet werden, z.B. aus einer ImageList:

PictureBox1.Image = ImageList1.Images(0)

Damit das Alles jetzt auch schön aussieht müssen noch folgende Eigenschaften des PictureBox-Controls verändert werden:

SizeMode = AutoSize
BorderStyle = None



Anzeige

Kauftipp Unser Dauerbrenner!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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


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.