在.net winform中创建圆角容器

时间:2011-03-08 06:32:26

标签: c# .net winforms

我想在winform .net中创建圆角容器。我的目标是创建一个容器,如果我放弃其中的任何其他控件,那么该控件也将变成圆形。

这可能吗?

2 个答案:

答案 0 :(得分:5)

您正在寻找Control.Region property,它允许您设置与特定控件关联的窗口区域。操作系统不会绘制或显示位于窗口区域之外的窗口的任何部分。

该文档提供了如何使用Region属性创建圆形按钮的示例:

// 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, 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);
}

答案 1 :(得分:0)

Control.ControlAdded Event

Control.Region

Control.DesignMode

将子控件添加到父控件时,可以更改它们的区域。

相关问题