このコードを使用して、フォームに境界線スタイルを持たないようにしています:
this.FormBorderStyle = FormBorderStyle.None;
フォームに丸みを帯びたエッジを作成する必要があります。
簡単な方法はありますか?どうすればいいのですか?
このコードを使用して、フォームに境界線スタイルを持たないようにしています:
this.FormBorderStyle = FormBorderStyle.None;
フォームに丸みを帯びたエッジを作成する必要があります。
簡単な方法はありますか?どうすればいいのですか?
これを見てください:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.region.aspx
Form クラスは Control クラスを継承するため、フォームの 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,
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);
}
public static void RoundBorderForm(Form frm)
{
Rectangle Bounds = new Rectangle(0, 0, frm.Width, frm.Height);
int CornerRadius = 20;
System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddArc(Bounds.X, Bounds.Y, CornerRadius, CornerRadius, 180, 90);
path.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y, CornerRadius, CornerRadius, 270, 90);
path.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
path.AddArc(Bounds.X, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
path.CloseAllFigures();
frm.Region = new Region(path);
frm.Show();
}
質問がすでに回答されていることは知っています。別の愚かな方法を追加したいと思いますが、あなたの質問は回答をコードに制限していないため、実際には推奨されない方法です...
TransparencyKey
フォームに設定しますPictureBox
し、対応するコーナーに配置しますビオラ!