bahar_engineer
پنج شنبه 22 اسفند 1387, 13:23 عصر
سلام من تو این paint هر کاری می کنم مشکلم حل نمی شه !! نمی دونم مشکل از کجاست ؟ روی هم نمی تونه شکل ها رو رسم کنه. خواهشاً به این سورس کد نگاهی بیاندازید....
بسیار ممنون می شم
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace childfriend
{
public partial class paint : Form
{
public paint()
{
InitializeComponent();
}
Boolean begindraw = false;
int x, y;
Bitmap myimg;
Graphics g;
Pen p = new Pen(Brushes.Black, 3);
//LinearGradientBrush line;
//Boolean fill;
Boolean check=false;
Boolean drawline=false;
public string toolip = "قلم";
public Font font;
public string text;
//Point pnt;
//int width, height, pnt_x, pnt_y;
int last_point_x, last_point_y;
private void paint_Load(object sender, EventArgs e)
{
New_file();
p.Color = panel1.BackColor;
pictureBox1.Cursor = new Cursor("cross.cur");
}
void New_file()
{
myimg = null;
myimg = new Bitmap(pictureBox1.Width, pictureBox1.Height);
g = Graphics.FromImage(myimg);
g.SmoothingMode = SmoothingMode.HighQuality;
g.FillRectangle(Brushes.White, new Rectangle(0, 0, myimg.Width, myimg.Height));
pictureBox1.Image = myimg;
}
private void panel1_DoubleClick(object sender, EventArgs e)
{
Panel panel = (Panel)sender;
if (colorDialog1.ShowDialog() == DialogResult.OK)
panel.BackColor = colorDialog1.Color;
p.Color = panel1.BackColor;
}
private void panel9_Paint(object sender, PaintEventArgs e)
{
p.Color = panel9.BackColor;
}
private void panel2_Click(object sender, EventArgs e)
{
Panel panel = (Panel)sender;
panel1.BackColor = panel.BackColor;
p.Color = panel1.BackColor;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
try
{
switch(toolip)
{
case "قلم":
if (drawline == true)//خط رو رسم می کنه
{
if (check == false)
{
last_point_x = e.X;
last_point_y = e.Y;
check = true;
}
//draw line
g.DrawLine(p, last_point_x, last_point_y, e.X, e.Y);
last_point_x = e.X;
last_point_y = e.Y;
}
pictureBox1.Image = myimg;
break;
case "مستطیل":
if (begindraw)
my_rect(e.X, e.Y);
pictureBox1.Image = myimg;
break;
case "دایره":
if (begindraw)
my_Ellipse(e.X , e.Y);
pictureBox1.Image = myimg;
break;
case "دایره توپر":
if (begindraw)
my_FillEllipse(e.X, e.Y);
pictureBox1.Image = myimg;
break;
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void panel25_Click(object sender, EventArgs e)
{
Panel panel = (Panel)sender;
panel25.BorderStyle = panel25.BorderStyle = panel26.BorderStyle = panel27.BorderStyle = panel28.BorderStyle = panel29.BorderStyle = panel30.BorderStyle = BorderStyle.None;
panel.BorderStyle = BorderStyle.FixedSingle;
p.Width = int.Parse(panel.Tag.ToString());
}
private void button1_Click(object sender, EventArgs e)
{
//exit
Close();
}
private void button2_Click(object sender, EventArgs e)
{
//new paint?
if (MessageBox.Show("می خوای یه نقاشی جدید بکشی؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
New_file();
}
private void button3_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "(*.jpg) |*.jpg| (*.bmp) |*.bmp| (*.png) |*.png | (*.gif) |*.gif ";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "می تونی یه عکس یا نقاشی رو برای نمایش انتخاب کنی";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
myimg = new Bitmap(pictureBox1.Image);
g = Graphics.FromImage(myimg);
}
}
private void button4_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "JPEG File (*.jpg)|*.jpg|Bitmap File (*.bmp)|*.bmp|PNG File(*.png)|*.png |GIF File(*.gif)|*.gif";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
switch (Path.GetExtension(saveFileDialog1.FileName))
{
case ".jpg":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Jpeg); break;
case ".bmp":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Bmp); break;
case ".png":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Png); break;
case ".gif":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Gif); break;
}
}
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
try
{
switch(toolip)
{
case "قلم" :
if (checkBox1.Checked == true)
{
drawline = true;
}
break;
case "مستطیل":
begindraw = true;
x = e.X;
y = e.Y;
break;
case "دایره" :
begindraw = true;
x = e.X;
y = e.Y;
break;
case "دایره توپر":
begindraw = true;
x = e.X;
y = e.Y;
break;
}}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
drawline = false;//می گه که دیگه خط رسم نشه
check = false;//دفعه بعد خط از موقعیت خودش شروع بشه
begindraw = false;
}
void Set_border(PictureBox picB)
{
pictureBox2.BorderStyle = pictureBox9.BorderStyle = pictureBox10.BorderStyle = pictureBox11.BorderStyle = pictureBox12.BorderStyle = pictureBox2.BorderStyle = BorderStyle.None;
picB.BorderStyle = BorderStyle.FixedSingle;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "قلم";
}
private void checkBox1_MouseEnter(object sender, EventArgs e)
{
label3.Text = "مداد";
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
try
{
switch (toolip)
{
case "قلم":
if (drawline == true)//خط رو رسم می کنه
{
if (check == false)
{
last_point_x = e.X;
last_point_y = e.Y;
check = true;
}
//draw line
g.DrawLine(p, last_point_x, last_point_y, e.X, e.Y);
last_point_x = e.X;
last_point_y = e.Y;
}
pictureBox1.Image = myimg;
this.label1.Text = "";
break;
case "مستطیل":
if (begindraw == true)
my_rect(e.X, e.Y);
pictureBox1.Image = myimg;
break;
case "دایره":
if (begindraw == true)
my_Ellipse(e.X, e.Y);
pictureBox1.Image = myimg;
break;
case "دایره توپر":
if (begindraw == true)
my_FillEllipse(e.X, e.Y);
pictureBox1.Image = myimg;
break;
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void pictureBox2_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم خط/چند ضلعی";
}
private void pictureBox9_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم دایره توخالی";
}
private void pictureBox10_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم مستطیل/مربع توخالی";
}
private void pictureBox11_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم دایره توپر";
}
private void pictureBox12_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم مستطیل/مربع توپر";
}
private void panel34_MouseEnter(object sender, EventArgs e)
{
Panel p = (Panel)sender;
label3.Text = "قلم اندازه " + p.Tag.ToString();
}
private void panel9_MouseEnter(object sender, EventArgs e)
{
label3.Text = "پاک کن";
}
private void panel1_MouseEnter(object sender, EventArgs e)
{
label3.Text = "رنگ مداد";
}
private void panel2_MouseEnter(object sender, EventArgs e)
{
label3.Text = "تغییر رنگ مداد";
}
private void button1_MouseEnter(object sender, EventArgs e)
{
label3.Text = "می خوام برم بیرون";
}
private void button4_MouseEnter(object sender, EventArgs e)
{
label3.Text = "نقاشیتو ذخیره کن";
}
private void button3_MouseEnter(object sender, EventArgs e)
{
label3.Text = "می تونی یه عکس یا یه نقاشی رو باز کنی";
}
private void button2_MouseEnter(object sender, EventArgs e)
{
label3.Text = "می تونی یه نقاشی جدید بکشی";
}
//draw rectangle
private void my_rect(int ToX, int ToY)
{
pictureBox1.Image = myimg;
Graphics my_graph = pictureBox1.CreateGraphics();
my_graph.Clear(Color.White);
Rectangle my_rec = new System.Drawing.Rectangle(x, y, ToX, ToY);
my_graph.DrawRectangle(p, my_rec);
my_graph.Dispose();
}
private void pictureBox10_Click(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "مستطیل";
}
private void pictureBox9_Click(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "دایره";
}
//draw Ellipse
private void my_Ellipse(int ToX, int ToY)
{
Graphics my_graph = pictureBox1.CreateGraphics();
my_graph.Clear(Color.White);
Rectangle my_rec = new System.Drawing.Rectangle(x, y, ToX, ToY);
my_graph.DrawEllipse(p, my_rec);
my_graph.Dispose();
}
//draw fill Ellipse
private void my_FillEllipse(int ToX, int ToY)
{
Graphics my_graph = pictureBox1.CreateGraphics();
my_graph.Clear(Color.White);
Rectangle my_rec = new System.Drawing.Rectangle(x, y, ToX, ToY);
Brush my_brush = Brushes.Pink;
my_graph.FillEllipse(my_brush, my_rec);
my_graph.Dispose();
}
private void pictureBox11_Click(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "دایره توپر";
}
}
}
please help me!!
هر کس هم کد نمونه برام گذاشت برای رسم تک شکل بود . وقتی خودم درستش می کنم که همه شکل ها رو بتونه رسم کنه بازم روی هم رسم نمی شه. برای رسم شکل جدید قبلی ها رو پاک می کنه....
I AM WAITING ........
بسیار ممنون می شم
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace childfriend
{
public partial class paint : Form
{
public paint()
{
InitializeComponent();
}
Boolean begindraw = false;
int x, y;
Bitmap myimg;
Graphics g;
Pen p = new Pen(Brushes.Black, 3);
//LinearGradientBrush line;
//Boolean fill;
Boolean check=false;
Boolean drawline=false;
public string toolip = "قلم";
public Font font;
public string text;
//Point pnt;
//int width, height, pnt_x, pnt_y;
int last_point_x, last_point_y;
private void paint_Load(object sender, EventArgs e)
{
New_file();
p.Color = panel1.BackColor;
pictureBox1.Cursor = new Cursor("cross.cur");
}
void New_file()
{
myimg = null;
myimg = new Bitmap(pictureBox1.Width, pictureBox1.Height);
g = Graphics.FromImage(myimg);
g.SmoothingMode = SmoothingMode.HighQuality;
g.FillRectangle(Brushes.White, new Rectangle(0, 0, myimg.Width, myimg.Height));
pictureBox1.Image = myimg;
}
private void panel1_DoubleClick(object sender, EventArgs e)
{
Panel panel = (Panel)sender;
if (colorDialog1.ShowDialog() == DialogResult.OK)
panel.BackColor = colorDialog1.Color;
p.Color = panel1.BackColor;
}
private void panel9_Paint(object sender, PaintEventArgs e)
{
p.Color = panel9.BackColor;
}
private void panel2_Click(object sender, EventArgs e)
{
Panel panel = (Panel)sender;
panel1.BackColor = panel.BackColor;
p.Color = panel1.BackColor;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
try
{
switch(toolip)
{
case "قلم":
if (drawline == true)//خط رو رسم می کنه
{
if (check == false)
{
last_point_x = e.X;
last_point_y = e.Y;
check = true;
}
//draw line
g.DrawLine(p, last_point_x, last_point_y, e.X, e.Y);
last_point_x = e.X;
last_point_y = e.Y;
}
pictureBox1.Image = myimg;
break;
case "مستطیل":
if (begindraw)
my_rect(e.X, e.Y);
pictureBox1.Image = myimg;
break;
case "دایره":
if (begindraw)
my_Ellipse(e.X , e.Y);
pictureBox1.Image = myimg;
break;
case "دایره توپر":
if (begindraw)
my_FillEllipse(e.X, e.Y);
pictureBox1.Image = myimg;
break;
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void panel25_Click(object sender, EventArgs e)
{
Panel panel = (Panel)sender;
panel25.BorderStyle = panel25.BorderStyle = panel26.BorderStyle = panel27.BorderStyle = panel28.BorderStyle = panel29.BorderStyle = panel30.BorderStyle = BorderStyle.None;
panel.BorderStyle = BorderStyle.FixedSingle;
p.Width = int.Parse(panel.Tag.ToString());
}
private void button1_Click(object sender, EventArgs e)
{
//exit
Close();
}
private void button2_Click(object sender, EventArgs e)
{
//new paint?
if (MessageBox.Show("می خوای یه نقاشی جدید بکشی؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
New_file();
}
private void button3_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "(*.jpg) |*.jpg| (*.bmp) |*.bmp| (*.png) |*.png | (*.gif) |*.gif ";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "می تونی یه عکس یا نقاشی رو برای نمایش انتخاب کنی";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
myimg = new Bitmap(pictureBox1.Image);
g = Graphics.FromImage(myimg);
}
}
private void button4_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "JPEG File (*.jpg)|*.jpg|Bitmap File (*.bmp)|*.bmp|PNG File(*.png)|*.png |GIF File(*.gif)|*.gif";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
switch (Path.GetExtension(saveFileDialog1.FileName))
{
case ".jpg":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Jpeg); break;
case ".bmp":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Bmp); break;
case ".png":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Png); break;
case ".gif":
pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Gif); break;
}
}
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
try
{
switch(toolip)
{
case "قلم" :
if (checkBox1.Checked == true)
{
drawline = true;
}
break;
case "مستطیل":
begindraw = true;
x = e.X;
y = e.Y;
break;
case "دایره" :
begindraw = true;
x = e.X;
y = e.Y;
break;
case "دایره توپر":
begindraw = true;
x = e.X;
y = e.Y;
break;
}}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
drawline = false;//می گه که دیگه خط رسم نشه
check = false;//دفعه بعد خط از موقعیت خودش شروع بشه
begindraw = false;
}
void Set_border(PictureBox picB)
{
pictureBox2.BorderStyle = pictureBox9.BorderStyle = pictureBox10.BorderStyle = pictureBox11.BorderStyle = pictureBox12.BorderStyle = pictureBox2.BorderStyle = BorderStyle.None;
picB.BorderStyle = BorderStyle.FixedSingle;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "قلم";
}
private void checkBox1_MouseEnter(object sender, EventArgs e)
{
label3.Text = "مداد";
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
try
{
switch (toolip)
{
case "قلم":
if (drawline == true)//خط رو رسم می کنه
{
if (check == false)
{
last_point_x = e.X;
last_point_y = e.Y;
check = true;
}
//draw line
g.DrawLine(p, last_point_x, last_point_y, e.X, e.Y);
last_point_x = e.X;
last_point_y = e.Y;
}
pictureBox1.Image = myimg;
this.label1.Text = "";
break;
case "مستطیل":
if (begindraw == true)
my_rect(e.X, e.Y);
pictureBox1.Image = myimg;
break;
case "دایره":
if (begindraw == true)
my_Ellipse(e.X, e.Y);
pictureBox1.Image = myimg;
break;
case "دایره توپر":
if (begindraw == true)
my_FillEllipse(e.X, e.Y);
pictureBox1.Image = myimg;
break;
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void pictureBox2_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم خط/چند ضلعی";
}
private void pictureBox9_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم دایره توخالی";
}
private void pictureBox10_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم مستطیل/مربع توخالی";
}
private void pictureBox11_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم دایره توپر";
}
private void pictureBox12_MouseEnter(object sender, EventArgs e)
{
this.label3.Text = "رسم مستطیل/مربع توپر";
}
private void panel34_MouseEnter(object sender, EventArgs e)
{
Panel p = (Panel)sender;
label3.Text = "قلم اندازه " + p.Tag.ToString();
}
private void panel9_MouseEnter(object sender, EventArgs e)
{
label3.Text = "پاک کن";
}
private void panel1_MouseEnter(object sender, EventArgs e)
{
label3.Text = "رنگ مداد";
}
private void panel2_MouseEnter(object sender, EventArgs e)
{
label3.Text = "تغییر رنگ مداد";
}
private void button1_MouseEnter(object sender, EventArgs e)
{
label3.Text = "می خوام برم بیرون";
}
private void button4_MouseEnter(object sender, EventArgs e)
{
label3.Text = "نقاشیتو ذخیره کن";
}
private void button3_MouseEnter(object sender, EventArgs e)
{
label3.Text = "می تونی یه عکس یا یه نقاشی رو باز کنی";
}
private void button2_MouseEnter(object sender, EventArgs e)
{
label3.Text = "می تونی یه نقاشی جدید بکشی";
}
//draw rectangle
private void my_rect(int ToX, int ToY)
{
pictureBox1.Image = myimg;
Graphics my_graph = pictureBox1.CreateGraphics();
my_graph.Clear(Color.White);
Rectangle my_rec = new System.Drawing.Rectangle(x, y, ToX, ToY);
my_graph.DrawRectangle(p, my_rec);
my_graph.Dispose();
}
private void pictureBox10_Click(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "مستطیل";
}
private void pictureBox9_Click(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "دایره";
}
//draw Ellipse
private void my_Ellipse(int ToX, int ToY)
{
Graphics my_graph = pictureBox1.CreateGraphics();
my_graph.Clear(Color.White);
Rectangle my_rec = new System.Drawing.Rectangle(x, y, ToX, ToY);
my_graph.DrawEllipse(p, my_rec);
my_graph.Dispose();
}
//draw fill Ellipse
private void my_FillEllipse(int ToX, int ToY)
{
Graphics my_graph = pictureBox1.CreateGraphics();
my_graph.Clear(Color.White);
Rectangle my_rec = new System.Drawing.Rectangle(x, y, ToX, ToY);
Brush my_brush = Brushes.Pink;
my_graph.FillEllipse(my_brush, my_rec);
my_graph.Dispose();
}
private void pictureBox11_Click(object sender, EventArgs e)
{
p.Color = panel1.BackColor;
toolip = "دایره توپر";
}
}
}
please help me!!
هر کس هم کد نمونه برام گذاشت برای رسم تک شکل بود . وقتی خودم درستش می کنم که همه شکل ها رو بتونه رسم کنه بازم روی هم رسم نمی شه. برای رسم شکل جدید قبلی ها رو پاک می کنه....
I AM WAITING ........