Problem beim Erstellen vom eigenen Button

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Problem beim Erstellen vom eigenen Button

    Hallo Leute

    Ich habe ein Problem. Ich habe mir einen eigenen Button erstellt. So wie mache ich das jetzt, dass wenn ich auf den Button klicke, irgendeine kurze Veränderung kommt wie bei den normalen button beim draufklicken. Ausserdem würde ich gerne wissen wie ich in den button einen standardtext einfügen kann
    Erstelle deinen Button so:

    VB.NET-Quellcode

    1. Public WithEvents btn As New Button


    Ins Form Load Event packst du:

    VB.NET-Quellcode

    1. btn.text = "Irgentwas"
    2. me.controls.add(btn)


    Schon hast du deinen Button fertig.

    Um was anzuzeigen gehst du oben neben Deklarationen und suchst deinen Button. Dann suchst du dir rechts in dem Feld "Deklarationen" das Click Event und schon kannst du dem Button sagen was er bei einem Click machen soll

    Glubschi43 schrieb:

    Ich habe mir einen eigenen Button erstellt.
    guck dirmal, wie zT. profis das machen: codeproject.com/KB/buttons/

    wow, sogar in vb: codeproject.com/Articles/26622…h-Gradient-Colors-and-Ext

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Das ist der normale Code:

    VB.NET-Quellcode

    1. Imports System.Drawing
    2. Imports System.Drawing.Drawing2D
    3. Imports System.Windows.Forms
    4. Imports System.ComponentModel
    5. Public Class MetroButton
    6. Inherits Button
    7. Private Sub Grafik(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
    8. e.Graphics.SmoothingMode = SmoothingMode.HighQuality
    9. Dim HintergrundA As Integer = MyBase.ClientRectangle.Height
    10. Dim HintergrundB As Integer = MyBase.ClientRectangle.Width
    11. Dim HintergrundfarbeA As Color = Color.DimGray
    12. Dim HintergrundfarbeB As Color = Color.DimGray
    13. Dim HintergrundBrush As New LinearGradientBrush(New Point(0, 0), New Point(0, HintergrundA), HintergrundfarbeA, HintergrundfarbeB)
    14. e.Graphics.FillRectangle(HintergrundBrush, 0, 0, HintergrundB, HintergrundA)
    15. End Sub
    16. End Class


    Und das hier ist der Code vom Designer. Anstatt des Subs InitializeComponent hab ich folgendes Sub eingefügt:

    VB.NET-Quellcode

    1. Public Sub New()
    2. MyBase.New()
    3. MyBase.SetStyle(ControlStyles.UserPaint, True)
    4. MyBase.SetStyle(ControlStyles.DoubleBuffer, True)
    5. MyBase.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    6. End Sub
    Das funktioniert ja alles aber ich würde gerne wissen wie ich das machen kann dass man einen Standardtext in den Button einfügt und dass beim daraufklicken man das beim button sieht wie bei den normalen windows button die wenn man daraufklickt immer kurz leicht blau gefärbt werden
    Das verbaust Du alles in Deiner Paint-Routine.
    Füge da mal folgenden Code ein:

    VB.NET-Quellcode

    1. e.Graphics.DrawString(Text, New Font("Arial", 10), Brushes.Black, New Point(5, 5))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!