UserControl auf Faq

Hallo,

in der Faq ist ein Code mit dem man ein eigenes UserControl erstellen kann.

Leider habe ich nicht ganz begriffen wo ich das einsetzen kann.
Habe es bei VB2008 probiert aber dort habe ich nix gefunden zu „UserControl“ und ne Anleitung vor dem Code fand ich leider nicht.

LG Tobi@s

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 :wink:

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 :wink:

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 :wink:

Klingt ziemlich kompliziert ? Ist es nicht. Unter .NET ist vieles einfacher. Hier mal ein kleines Demo, wie ich es meinte :wink:

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

Hallo,

in der Faq ist ein Code mit dem man ein eigenes UserControl
erstellen kann.

Habe es bei VB2008 probiert …

danke für den Hinweis! Jetzt steht im Titel der FAQ, daß das Beispiel für VB5/VB6.0 ist.

Gruß Rainer