PDA

View Full Version : سوال: ساخت فرم دایره ای شکل



kebriya
سه شنبه 19 آبان 1394, 21:54 عصر
سلام دوستان.من ی فرم لاگین دارم میخام ی ذره دورشو دایره ای کمن از مستطیلی خارج شه.میشه بگید چیکار کنم؟؟
از کد زیر استفاده کردم اما این کد باید در رویداد لود فرم نوشته شه که بعد ران شدن فرم خراب میشه .

private void Form1_Load(object sender, EventArgs e)
{
this.Height = 800;
this.Width = 800;
System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddEllipse(80, 80, 450, 350);
this.Region = new Region(path);
this.Show();
}

ahmad.t1100
سه شنبه 19 آبان 1394, 22:38 عصر
سلام لینک زیر رو ببین
امیدوارم مفید باشه
http://www.windowsit.ir/showpost.aspx?id=13940819232829

kebriya
سه شنبه 19 آبان 1394, 23:35 عصر
من فقط میخام چهارگوشش یکم دایره شه...این کلا دایرش میکنه

محمد آشتیانی
چهارشنبه 20 آبان 1394, 00:22 صبح
سلام
کلا روش جالبی نیست مگر اینکه Border Style فرم شما روی None تنظیم شده باشه (با این حال هم گوشه ها حالت Smooth ندارن)

اما به هر صورت ، فضای نام System.Drawing.Drawing2D رو اضافه کنید و این متد رو بنویسید

private GraphicsPath RoundedRectangle(Rectangle R, int radius)
{
GraphicsPath Path = new GraphicsPath();

Path.AddLine(R.Left + radius, R.Top, R.Right - radius, R.Top);
Path.AddArc(Rectangle.FromLTRB(R.Right - radius, R.Top, R.Right, R.Top + radius), -90, 90);
Path.AddLine(R.Right, R.Top + radius, R.Right, R.Bottom - radius);
Path.AddArc(Rectangle.FromLTRB(R.Right - radius, R.Bottom - radius, R.Right, R.Bottom), 0, 90);
Path.AddLine(R.Right - radius, R.Bottom, R.Left + radius, R.Bottom);
Path.AddArc(Rectangle.FromLTRB(R.Left, R.Bottom - radius, R.Left + radius, R.Bottom), 90, 90);
Path.AddLine(R.Left, R.Bottom - radius, R.Left, R.Top + radius);
Path.AddArc(Rectangle.FromLTRB(R.Left, R.Top, R.Left + radius, R.Top + radius), 180, 90);
Path.CloseFigure();

return Path;
}


در رویداد Paint فرم بنویسید

Rectangle rect = new Rectangle(0, 0, Width, Height);
this.Region = new Region(RoundedRectangle(rect, 50));


اون عدد 50 مقدار گردی گوشه های فرم هست که به دلخواه میتونید تغییرش بدید.


موفق باشید.