سورس پروژه رسم اشکال گرافیکی در سی شارپ #c

این پروژه که با زبان برنامه نویسی سی شارپ نوشته شده است ، یک سری ابزار ها را در اختیار کاربر قرار می دهد و کاربر با کلیک بر روی این ابزار ها اشکال مورد نظر را روی یک پنل رسم می کند.
در این برنامه امکان انتخاب رنگ نیز برای رسم اشکال گرافیکی با آن رنگ فراهم شده است.
همچنین امکان انتخاب یک تصویر و رسم آن به میزان دلخواه روی برد نیز وجود دارد.
اشکالی که می توان با این برنامه رسم کرد عبارتند از:
- رسم خط با ابزاری مانند مداد
- رسم خط راست
- رسم خط های مورب
- رسم مربع
- رسم مثلث
- رسم لوزی
- ابزار پاک کن
- انتخاب رنگ
- انتخاب تصویر
روند کار این برنامه به این صورت است که ،با کلیک روی هر یک از ابزار های ذکر شده در بالا یک متغیر true می شود و سپس با کلیک روی برد رسم با استفاده از مختصات ابتدا و انتهای ماوس اشکال گرافیکی مورد نظر را رسم می کند.
اصل برنامه را می توانید در پایین صفحه دانلود کنید
اینم بخشی از سورس کد برنامه که می توانید در هر نسخه ی ویژوال استودیو از آن بهره بگیرید:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace graphic
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
PaintEventArgs aa;
bool line = false, lines = false, oval = false, rectangle = false, pen = false, triangle = false, diamond = false, Eraser = false, p1 = false;
bool mousedown = false;
Pen p,p2;
Graphics g;
int left, top,x1,y1,x2=0,y2=0;
private void panel1_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
panel1.BackColor = colorDialog1.Color;
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
if (!p1)
{
cancelselect();
p1 = true;
line = oval = rectangle = pen = triangle = diamond = lines = Eraser = false;
}
else
p1 = false;
}
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
}
}
private void panel2_Paint(object sender, PaintEventArgs e)
{
if (p1 )
{
Image IM = new Bitmap(picbox.Image);
Graphics G1 = panel2.CreateGraphics();
Rectangle NR = new Rectangle();
NR.X = left ;
NR.Y = top ;
NR.Width = picbox.Width;
NR.Height = picbox.Height;
G1.DrawImage(IM, NR);
}
}
private void toolStripButton7_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton) sender;
if (!line)
{
cancelselect();
lines = oval = rectangle = pen = triangle = diamond = p1 =Eraser= false;
line = true;
s.BackColor = Color.Brown ;
}
else
{
line = false;
s.BackColor = Color.RosyBrown ;
}
}
private void panel2_MouseMove(object sender, MouseEventArgs e)
{
if (mousedown)
{
p = new Pen((Color)panel1.BackColor, 2);
p2 = new Pen((Color)panel2.BackColor, 2);
if (line)
{
using (g = panel2.CreateGraphics())
{
g.DrawLine(p2, new Point(x1, y1), new Point(x2,y2 ));
g.DrawLine(p, new Point(x1,y1), new Point(e.X, e.Y));
}
}
else if (pen)
{
using (g = panel2.CreateGraphics())
{
g.DrawLine (p,new Point(e.X, e.Y), new Point(e.X+1, e.Y+1));
}
}
else if (lines)
{
using (g = panel2.CreateGraphics())
{
g.DrawLine(p, new Point(x1, y1), new Point(e.X, e.Y));
}
}
else if (rectangle )
{
using (g = panel2.CreateGraphics())
{
g.DrawRectangle(p2, x1, y1,Math.Abs( x2 - x1),Math.Abs( y2 - y1));
g.DrawRectangle(p, x1, y1,Math.Abs( e.X-x1) ,Math.Abs( e.Y-y1));
}
}
else if (Eraser )
{
p2 = new Pen((Color)panel2.BackColor, 25);
using (g = panel2.CreateGraphics())
{
g.DrawLine(p2, new Point(e.X, e.Y), new Point(e.X + 1, e.Y + 1));
}
}
else if (triangle )
{
using (g = panel2.CreateGraphics())
{
using (g = panel2.CreateGraphics())
{
g.DrawLine(p2, new Point(x1, y1), new Point(x2, y2));
g.DrawLine(p2, new Point(x1, y1), new Point(x2-(x2-x1 )*2, y2));
g.DrawLine(p2, new Point(x2-(x2-x1 )*2, y2), new Point(x2, y2));
g.DrawLine(p, new Point(x1, y1), new Point(e.X, e.Y));
g.DrawLine(p, new Point(x1, y1), new Point(e.X-(e.X-x1)*2, e.Y));
g.DrawLine(p, new Point(e.X - (e.X - x1) * 2, e.Y),new Point(e.X,e.Y ));
}
}
}
else if (oval )
{
using (g = panel2.CreateGraphics())
{
using (g = panel2.CreateGraphics())
{
g.DrawLine(p2, new Point(x1, y1), new Point(x2, y2));
g.DrawLine(p2, new Point(x1, y1), new Point(x2 - (x2 - x1) , y2));
g.DrawLine(p2, new Point(x2 - (x2 - x1) , y2), new Point(x2, y2));
g.DrawLine(p, new Point(x1, y1), new Point(e.X, e.Y));
g.DrawLine(p, new Point(x1, y1), new Point(e.X - (e.X - x1) , e.Y));
g.DrawLine(p, new Point(e.X - (e.X - x1) , e.Y), new Point(e.X, e.Y));
}
}
}
else if (diamond )
{
using (g = panel2.CreateGraphics())
{
using (g = panel2.CreateGraphics())
{
g.DrawLine(p2, new Point(x1, y1), new Point(x2, y1 + (y2 - y1) / 2));
g.DrawLine(p2, new Point(x2, y1 + (y2 - y1) / 2), new Point(x1 , y2));
g.DrawLine(p2, new Point(x1, y1), new Point(x2-(x2-x1)*2, y1 + (y2 - y1) / 2));
g.DrawLine(p2, new Point(x2 - (x2 - x1) * 2, y1 + (y2 - y1) / 2), new Point(x1 , y2 ));
//================================
g.DrawLine(p, new Point(x1, y1), new Point(e.X, y1+(e.Y-y1)/2));
g.DrawLine(p, new Point(e.X, y1 + (e.Y - y1) / 2), new Point(x1 , e.Y));
g.DrawLine(p, new Point(x1, y1), new Point(e.X-(e.X-x1)*2 , y1 + (e.Y - y1) / 2));
g.DrawLine(p, new Point(e.X - (e.X - x1) * 2, y1 + (e.Y - y1) / 2), new Point(x1 , e.Y) );
}
}
}
x2 = e.X;
y2 = e.Y;
}
}
private void panel2_MouseUp(object sender, MouseEventArgs e)
{
mousedown = false;
x1=y1=x2=y2=0;
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!pen )
{
cancelselect();
lines = oval = rectangle = line = triangle = diamond = p1 = Eraser = false;
pen = true;
s.BackColor = Color.Brown;
}
else
{
pen = false;
s.BackColor = Color.RosyBrown;
}
}
private void toolStripButton9_Click(object sender, EventArgs e)
{
if(MessageBox.Show("Are u shure?","Erase all",MessageBoxButtons.YesNo ,MessageBoxIcon.Question)==DialogResult.Yes )
using (g = panel2.CreateGraphics())
{
g.Clear(panel2.BackColor);
}
}
private void cancelselect()
{
p1 = false;
foreach (ToolStripItem item in toolStrip1.Items )
{
item.BackColor = toolStrip1.BackColor;
}
}
private void toolStripButton8_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!lines)
{
cancelselect();
line = oval = rectangle = pen = triangle = diamond = p1 = Eraser = false;
lines = true;
s.BackColor = Color.Brown;
}
else
{
lines = false;
s.BackColor = Color.RosyBrown;
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!oval )
{
cancelselect();
line = lines = rectangle = pen = triangle = diamond = p1 = Eraser = false;
oval = true;
s.BackColor = Color.Brown;
}
else
{
oval = false;
s.BackColor = Color.RosyBrown;
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!rectangle )
{
cancelselect();
line = lines = oval = pen = triangle = diamond = p1 = Eraser = false;
rectangle = true;
s.BackColor = Color.Brown;
}
else
{
rectangle = false;
s.BackColor = Color.RosyBrown;
}
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!Eraser )
{
cancelselect();
line = lines = oval = pen = triangle = diamond = p1 = rectangle = false;
Eraser = true;
s.BackColor = Color.Brown;
}
else
{
Eraser = false;
s.BackColor = Color.RosyBrown;
}
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!triangle )
{
cancelselect();
line = lines = oval = pen = Eraser = diamond = p1 = rectangle = false;
triangle = true;
s.BackColor = Color.Brown;
}
else
{
triangle = false;
s.BackColor = Color.RosyBrown;
}
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
ToolStripButton s = (ToolStripButton)sender;
if (!diamond )
{
cancelselect();
line = lines = oval = pen = Eraser = triangle = p1 = rectangle = false;
diamond = true;
s.BackColor = Color.Brown;
}
else
{
diamond = false;
s.BackColor = Color.RosyBrown;
}
}
private void label4_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("http://www.sourcecodes.ir");
}
}
}
سورس این پروژه را از لینک زیر دانلود کنید
حجم فایل :169 KB
با سلام مرسی از بابات سایت خوبتون ولی اگه ممکنه یه کم پروژه هاتونو بیشتر کنید ممنون اگه میشه لطفا کد شکل زیر هم بزارید*************که مختصادم بشه بهش داد وسایزشم قابل تغیر باشه ممنون
سلام دستتون درد نکنهببخشید یه سوال داشتم که چطوری میشه حدس کلمات رو در V Studio 2010 فعال کرد؟مثلا اینکه بعد از نقطه اسم یه رنگو میخوام بنویسم و نرم افزار یه صورت خودکار اسم رنگارو لیست کنه بیاره؟لطفا کمکم کنید!
با سلام ، این امکان به صورت پیش فرض فعال هستش ، اگر لیست مورد نظر نیومد می تونید از کلید های ترکیبی Ctrl+Space استفاده کنید.
سلام اموزش فرم دکمه هاش بذارید طراحیش خیلی مهمه برام