Hallo Tobias,
Hallo,
in der Faq ist ein Code mit dem man ein eigenes UserControl
erstellen kann.
Jups, ist aber schon ein wenig Anspruchsvoll und um Ihn zu verstehen, so sollten API Aufrufe kein Problem darstellen
Leider habe ich nicht ganz begriffen wo ich das einsetzen
kann.
Damit erstellst du ein Steuerelement, welches du dann einsetzen kannst. Einfach Project -> Neu -> ActiveX Control. Nach dem Kompilieren hast du dann ein *.OCX File. Dieses registrierst du nun und kannst dann in deinem Neuen Project einen Verweis hinzufügen und dann das Steuerelement nutzen
Habe es bei VB2008 probiert aber dort habe ich nix gefunden zu
„UserControl“ und ne Anleitung vor dem Code fand ich leider
nicht.
VB2008 ist .NET und nicht VB !!!
Wenn du unter .Net ein Steuerelemt neu erstellen willst, so geht das nen bissl anders. Erstelle dazu eine neues UserControl und schreibe da rein den Source. Kompiliere Dein Proggi oder starte es via CTRL + F5, dann beende dein Proggi und das Steuerelement taucht dann automatisch in der Werkzeug Sammlung auf.
Aber dort musst du beim erstellen ein wenig anders vorgehen. Anlehnend zum Bsp. aus der FAQ, würdest du eigentlich nur im UserControl dfen Button importieren, sprich Inherits Button. Danach schimpft der Designer rum und kreidet dir den Eintrag
„Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font“
an, was normal ist. Diesen entfernst du dann ganz dezent und überschreibst nun die Sub OnPaint und OnResize. Dort zeichnest du den Button neu und fertig ist der neue Button. Natuerlich kannst du nun noch andere Dinge hinzufügen, so wie du es möchtest
Klingt ziemlich kompliziert ? Ist es nicht. Unter .NET ist vieles einfacher. Hier mal ein kleines Demo, wie ich es meinte
Public Class UserControl1
Inherits Button
Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs)
Me.BackColor = Color.AntiqueWhite
Dim G As Graphics = pevent.Graphics
Dim RahmenStift As New Pen(Color.Yellow) With {.DashStyle = Drawing2D.DashStyle.DashDotDot, .Width = 2}
Dim Rahmen As Rectangle = New Rectangle(0, 0, Me.Width - 1, Me.Height - 1)
Dim Fläche As Rectangle = New Rectangle(2, 2, Me.Width - 4, Me.Height - 4)
G.DrawRectangle(RahmenStift, Rahmen)
G.FillRectangle(Brushes.Gray, Fläche)
Dim f As Font = Me.Font
G.DrawString(Me.Text, Me.Font, Brushes.Aqua, (Me.Width / 2) - (G.MeasureString(Me.Text, Me.Font).Width / 2), (Me.Height / 2) - G.MeasureString(Me.Text, Me.Font).Height / 2)
End Sub
End Class
LG Tobi@s
MfG Alex