Hallo!
Ich möchte ein eigenes Textbox-Steuerelement schreiben, dem ich ein Hinterhrundbild geben kann. Leider funktioniert das nicht so richtig. So sieht der Code aus:
Wenn ich ein Panel als Basis nehme funktioniert der Code. Wieso es mit Textbox nicht funktioniert, naja, das ist mein Problem!
Ich möchte ein eigenes Textbox-Steuerelement schreiben, dem ich ein Hinterhrundbild geben kann. Leider funktioniert das nicht so richtig. So sieht der Code aus:
Code:
Imports System.ComponentModel
PublicClass iTextboxInherits System.Windows.Forms.TextBox
#Region " Vom Windows Form Designer generierter Code "PublicSubNew()
MyBase.New()' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
EndSub
' UserControl1 überschreibt den Löschvorgang zur Bereinigung der Komponentenliste.
ProtectedOverloadsOverridesSub Dispose(ByVal disposing AsBoolean)If disposing ThenIfNot (components IsNothing) Thencomponents.Dispose()
EndIf
EndIf
MyBase.Dispose(disposing)
EndSub
' Für Windows Form-Designer erforderlich
Private components As System.ComponentModel.IContainer
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
'Sie kann mit dem Windows Form-Designer modifiziert werden.
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
<System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent()components = New System.ComponentModel.Container()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(iTextbox))
'
' iTextbox
'
Me.Name = "iTextbox"
Me.Size = New System.Drawing.Size(100, 20)
Me.ResumeLayout(False)
EndSub
#EndRegion
#Region " Variables"Private rect As Rectangle
#EndRegion
#Region " Properties"Dim bgImage As Image = Nothing
<Description("Das Hintergrundbild für das Steuerelement"), Category("Darstellung")> _
'Public Property BImage() As Image
PublicOverridesProperty BackgroundImage() As ImageGetReturn bgImage
EndGet
Set(ByVal Value As Image)bgImage = Value
EndSet
EndProperty
#EndRegion
#Region " Events"ProtectedOverridesSub onPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
If IsNothing(bgImage) = FalseThenrect = New Rectangle(0, 0, Me.Width, Me.Height)
e.Graphics.DrawImage(bgImage, rect)
EndIf
EndSub
#EndRegion
EndClass
Wenn ich ein Panel als Basis nehme funktioniert der Code. Wieso es mit Textbox nicht funktioniert, naja, das ist mein Problem!