Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Form with Rounded Borders in C#? [duplicate]

I am using this code to make the form have no border style:

this.FormBorderStyle = FormBorderStyle.None;

I need to make rounded edges on the form.

Is there an easy way? How do I do it?

like image 648
Hunter Mitchell Avatar asked May 20 '12 14:05

Hunter Mitchell


People also ask

How do you create a smooth border radius?

Simply split the colors between different elements — the outer element has the border and the specified border-radius, while the inner element has the background-color and a slightly smaller border-radius.

How do you draw a rounded rectangle in C#?

We can use the drawRoundRect() method that accepts x-coordinate, y-coordinate, width, height, arcWidth, and arc height to draw a rounded rectangle.


1 Answers

Take a look at this: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.region.aspx

The Form class inherits from the Control class, so try doing the same sample that you have on the link to the Form's Region property (and do it on the form event of course):

    // This method will change the square button to a circular button by 
// creating a new circle-shaped GraphicsPath object and setting it 
// to the RoundButton objects region.
private void roundButton_Paint(object sender, 
    System.Windows.Forms.PaintEventArgs e)
{

    System.Drawing.Drawing2D.GraphicsPath buttonPath = 
        new System.Drawing.Drawing2D.GraphicsPath();

    // Set a new rectangle to the same size as the button's 
    // ClientRectangle property.
    System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;

    // Decrease the size of the rectangle.
    newRectangle.Inflate(-10, -10);

    // Draw the button's border.
    e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);

    // Increase the size of the rectangle to include the border.
    newRectangle.Inflate( 1,  1);

    // Create a circle within the new rectangle.
    buttonPath.AddEllipse(newRectangle);

    // Set the button's Region property to the newly created 
    // circle region.
    roundButton.Region = new System.Drawing.Region(buttonPath);

}
like image 136
eyossi Avatar answered Oct 01 '22 03:10

eyossi