1首先建立一個form窗體 然後拖入pictureBox作為畫闆
2建立兩個button按鈕 一個為“開始畫畫 ” 一個“儲存”
對于畫闆的建立 首先 我們得聲明一些有關變量
Bitmap myImage; //位圖 用來存儲畫闆的基礎
int PBwidth; //這個是 畫闆的寬度
int PBheight;//這個是 畫闆的高度
bool beginPain = false;//定義是否畫闆開啟 初始化否
bool beginMove = false;//定義是否開始移動畫畫 初始化否
int currentXpos;//定義的一個變量 用來存儲 移動中坐标的x值
int currentYpos;//定義的一個變量 用來存儲 移動中坐标的y值
然後 我們要初始化beginPain和BeginMove在窗體初始化的時候
PBheight = pictureBox1.Height;
PBwidth = pictureBox1.Width;
然後單擊按鈕button1的效果
if (button1.Text == "開始畫畫")
{
beginPain = true;
button1.Text = "結束畫畫";
myImage = new Bitmap(PBwidth, PBheight);//建立并初始化位圖大小
Graphics g = Graphics.FromImage(myImage);//将位圖作為畫闆
g.Clear(Color.White);// 初始化畫闆為白色
pictureBox1.Image = myImage;//将初始化的圖檔指派給pictureBox
}
else
{
beginPain = false;
button1.Text = "開始畫畫";
}
這是左鍵單擊pictureBox的效果
if (beginPain == true)
{
if (e.Button == MouseButtons.Left)//擷取單擊是否為滑鼠左鍵
{
beginMove = true;
currentXpos = e.X; //擷取單擊的位置
currentYpos = e.Y;
}
}
這是移動滑鼠在pictureBox的效果
if (beginMove) //判斷是否移動
{
Graphics g = Graphics.FromImage(myImage);
Pen myPen = new Pen(Color.Red, 2);//畫筆的初始
g.DrawLine(myPen, currentXpos, currentYpos, e.X, e.Y);//畫筆在畫闆上的操作
pictureBox1.Image = myImage;//跟新圖像
g.Dispose();//釋放畫闆資源
currentYpos = e.Y;//跟新坐标
currentXpos = e.X;
}
這是松開滑鼠左鍵的效果
if (e.Button == MouseButtons.Left) //這樣 畫畫結束
{
beginMove = false;
//currentXpos = 0;
//currentYpos = 0;
}
這是儲存按鈕的操作
if (beginPain == true) //判斷是否在畫畫
{
SaveFileDialog sfd = new SaveFileDialog();
//sfd.InitialDirectory 這個屬性可以初始化儲存路徑 但是沒用這裡
if (sfd.ShowDialog() == DialogResult.OK)//ShowDialog()的話 如果結束掉該視窗 其他視窗無法操作
{
myImage.Save(sfd.FileName + ".Jpeg", ImageFormat.Jpeg);//圖像儲存 格式是Jpeg
}
}
else
{
MessageBox.Show("請重新繪制圖檔");
return;
}