DerStauner
Erfahrenes Mitglied
Hallo,
ich habe folgende Klasse: es beinhaltet ein Panel und darin ein Label. Im Wesentlichen ist nichts aussergewöhnliches daran, ich zeichne nur zwei Lines oben und unten auf den Panel und füge ein Label hinzu.
Was ich aber nicht hinbekommen kann: ich möchte eine Eigenschaft (sagen wir mal labelcaption) der Klasse hinfügen. Die Eigenschaft sollt im properties window auch erscheinen. Und wenn ich irgendein Text in dieses Feld eingebe, dann soll das Text auf dem Panel erscheinen.
Ich kann der Klasse eine Eigenschaft hinzufügen (es erscheint auch im properties window - <browsable> attribute), aber wie kann ich es erreichen, dass diese Eigenschaft mit dem Panel "kommuniziert"?
Könnt ihr meine Klasse so ergänzen? (die colors sind unwichtig)
ich habe folgende Klasse: es beinhaltet ein Panel und darin ein Label. Im Wesentlichen ist nichts aussergewöhnliches daran, ich zeichne nur zwei Lines oben und unten auf den Panel und füge ein Label hinzu.
Was ich aber nicht hinbekommen kann: ich möchte eine Eigenschaft (sagen wir mal labelcaption) der Klasse hinfügen. Die Eigenschaft sollt im properties window auch erscheinen. Und wenn ich irgendein Text in dieses Feld eingebe, dann soll das Text auf dem Panel erscheinen.
Ich kann der Klasse eine Eigenschaft hinzufügen (es erscheint auch im properties window - <browsable> attribute), aber wie kann ich es erreichen, dass diese Eigenschaft mit dem Panel "kommuniziert"?
Könnt ihr meine Klasse so ergänzen? (die colors sind unwichtig)
Code:
Imports System.ComponentModel
Public Class mypanel
Inherits Windows.Forms.Panel
Private panelcaption As String
Public Sub New()
MyBase.New()
Me.BackColor = Color.White
Me.Dock = DockStyle.Top
Dim lbl As New Label
lbl.Font = New Font("arial", 14, FontStyle.Bold)
lbl.ForeColor = Drawing.ColorTranslator.FromOle(form_label_fc)
lbl.Top = 7
lbl.Left = 8
lbl.Text = "some text" 'hier sollte immer der jeweilige Wert von labelcaption stehen
lbl.AutoSize = True
Me.Controls.Add(lbl)
lbl.Visible = True
End Sub
<Browsable(True)> _
Public Property labelcaption()
Get
Return panelcaption
End Get
Set(ByVal value)
panelcaption = value
End Set
End Property
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
Dim g As Graphics = e.Graphics
Dim p2 As New Pen(Drawing.ColorTranslator.FromOle(panel_line_below), 2)
Dim rect As Rectangle = New Rectangle(0, 0, Me.Width, 2)
Dim lbs As New Drawing2D.LinearGradientBrush(rect, Drawing.ColorTranslator.FromOle(panel_line_gradient_begin), _
Drawing.ColorTranslator.FromOle(panel_line_gradient_end), _
Drawing2D.LinearGradientMode.Vertical)
g.FillRectangle(lbs, rect)
g.DrawLine(p2, 0, Me.Height, Me.Width, Me.Height)
MyBase.OnPaint(e)
End Sub
End Class