Wie erstelle ich ein User Control mit abgerundeten Ecken?

Ich versuche ein Benutzersteuerelement mit abgerundeten Ecken zu haben. Es hat keine feste Größe, aber normalerweise ist die Breite nicht viel größer als 120 Pixel.

ch brauche das Benutzersteuerelement und seinen Inhalt (eine Beschriftung und eine Tabelle), um abgerundete Kanten zu haben und wie eine runde Box auszusehe

Ich habe diesen Code verwendet.

[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
    private static extern IntPtr CreateRoundRectRgn
    (
        int nLeftRect, // x-coordinate of upper-left corner
        int nTopRect, // y-coordinate of upper-left corner
        int nRightRect, // x-coordinate of lower-right corner
        int nBottomRect, // y-coordinate of lower-right corner
        int nWidthEllipse, // height of ellipse
        int nHeightEllipse // width of ellipse
    );

    public static System.Drawing.Region GetRoundedRegion(int controlWidth, int controlHeight)
    {
            return System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, controlWidth - 5, controlHeight - 5, 20, 20));
    } 

Dies gibt dem Steuerelement abgerundete Ecken, aber nachdem es einige Male ausgeführt wurde und ich ein Vielfaches meines Benutzersteuerelements zu dem Formular hinzugefügt habe, wird es ein Leck verursachen und ich erhalte die Whitebox mit einem roten Kreuz auf meinen Benutzersteuerelementen.

Gibt es einen besseren Weg, dies zu tun?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage