آموزش ساخت فرم غیر مستطیلی و شکل دار در #C
سلام دوستان در این مطلب آموزش سی شارپ ، یاد می گیرید که چگونه فرم هایی به شکل های مختلف بسازید.در ساخت برنامه های سی شارپ در حالت عادی ، فرمها به صورت مستطیل شکل هستند.در این آموزش ، شما نحوه ی ساخت فرم های غیرمستطیلی رو یاد می گیرید.
خروجی پروژه هایی که شما یاد می گیرید بسازید در تصاویر زیر نمایش داده شده است (تصاویر سمت راست ، خروجی و تصاویر سمت چپ محیط دیزاین هستند)
پروژه اول:
پروژه دوم :
پروژه سوم :
ساخت پروژه اول :
ابتدا کد فضای نام زیر را به برنامه تان اضافه کنید:
using System.Drawing.Drawing2D;
سپس کدهای زیر را درون رویداد load فرم قرار دهید:
// Make points to define a polygon for the form.
PointF[] pts = new PointF[10];
float cx = (float)(this.ClientSize.Width * 0.5);
float cy = (float)(this.ClientSize.Height * 0.5);
float r1 = (float)(this.ClientSize.Height * 0.45);
float r2 = (float)(this.ClientSize.Height * 0.25);
float theta = (float)(-Math.PI / 2);
float dtheta = (float)(2 * Math.PI / 10);
for (int i = 0; i < 10; i += 2)
{
pts[i] = new PointF(
(float)(cx + r1 * Math.Cos(theta)),
(float)(cy + r1 * Math.Sin(theta)));
theta += dtheta;
pts[i + 1] = new PointF(
(float)(cx + r2 * Math.Cos(theta)),
(float)(cy + r2 * Math.Sin(theta)));
theta += dtheta;
}
// Use the polygon to define a GraphicsPath.
GraphicsPath path = new GraphicsPath();
path.AddPolygon(pts);
// Make a region from the path.
Region form_region = new Region(path);
// Restrict the form to the region.
this.Region = form_region;
PointF[] pts = new PointF[10];
float cx = (float)(this.ClientSize.Width * 0.5);
float cy = (float)(this.ClientSize.Height * 0.5);
float r1 = (float)(this.ClientSize.Height * 0.45);
float r2 = (float)(this.ClientSize.Height * 0.25);
float theta = (float)(-Math.PI / 2);
float dtheta = (float)(2 * Math.PI / 10);
for (int i = 0; i < 10; i += 2)
{
pts[i] = new PointF(
(float)(cx + r1 * Math.Cos(theta)),
(float)(cy + r1 * Math.Sin(theta)));
theta += dtheta;
pts[i + 1] = new PointF(
(float)(cx + r2 * Math.Cos(theta)),
(float)(cy + r2 * Math.Sin(theta)));
theta += dtheta;
}
// Use the polygon to define a GraphicsPath.
GraphicsPath path = new GraphicsPath();
path.AddPolygon(pts);
// Make a region from the path.
Region form_region = new Region(path);
// Restrict the form to the region.
this.Region = form_region;
برای دکمه ی close هم این کد را قرار دهید: