1、C#课程设计画图工具C#课程设计班级:实验项目名称:画图工具实现学 号: 学生姓名: 一、实验目的(本次实验所涉及并要求掌握的知识点)1.通过实验掌握windows程序设计的基础,以及常见windows控件的使用;2.学习掌握画图工具实现的思想以及编程方法;二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图等) 实现记事本的Window运用程序,其功能能够实现画图工具的功能(可参见Window附件中的画图工具基本格式);三、实验使用环境(本次实验所使用的平台和相关软件)Windows操作系统Microsoft Visual Studio 2010编程软件四、实
2、验步骤和调试过程(实验步骤、测试数据设计、测试结果分析)画图工具的实现:设计过程主要通过运用Window工具, 其实现代码如下: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 mydrawingpicture public partial class Form1 : Form
3、 Graphics g; Point pStart, pEnd;/定义画图的起始终点 int ChoiceGrap; /所选择图形枚举 int penWidth; /画笔宽度 enum mySelected Pencil, /铅笔 Line, /直线 Ellipse, /空心椭圆 FillEllipse, /填充椭圆 Rec, /空心矩形 FillRec, /填充矩形 Eraser /橡皮擦 ; public Form1() InitializeComponent(); g= this.CreateGraphics(); private void pictureBox1_Paint(objec
4、t sender, PaintEventArgs e) private void Form1_Load(object sender, EventArgs e) g = this.pictureBox1.CreateGraphics(); ChoiceGrap = (int)mySelected.Pencil;/默认选择画笔工具 penWidth = 1; private void button1_Click(object sender, EventArgs e) private void btnTool_Click(object sender, EventArgs e) ChoiceGrap
5、= Convert.ToInt32(Button)sender).Tag); private void btnLine(object sender, EventArgs e) /把所有按钮的背景颜色都设为Black button9.BackColor = Color.White; button10.BackColor = Color.White; button11.BackColor = Color.White; button12.BackColor = Color.White; button13.BackColor = Color.White; (Button)sender).BackCol
6、or = Color.Black;/选中的按钮背景颜色为黑色 penWidth = Convert.ToInt32(Button)sender).Tag);/选择宽度按钮的Tag值设为画笔宽度 private void btnColor(object sender, EventArgs e) if (Button)sender).Text = C) if (colorDialog1.ShowDialog() = DialogResult.OK) button14.BackColor = colorDialog1.Color; else button14.BackColor = (Button)
7、sender).BackColor; private void Change_Point() Point pTemp = new Point();/定义临起点 if (pStart.X pEnd.Y) pTemp.Y = pStart.Y; pStart.Y = pEnd.Y; pEnd.Y = pTemp.Y; if (pStart.X pEnd.X) if (pStart.Y pEnd.Y) pTemp = pStart; pStart = pEnd; pEnd = pTemp; private void pictureBox1_MouseDown(object sender, Mouse
8、EventArgs e) if (e.Button = MouseButtons.Left)/如果单击鼠标左键,则将当作前点坐标赋予起始点 pStart.X = e.X; pStart.Y = e.Y; private void pictureBox1_MouseMove(object sender, MouseEventArgs e) toolStripStatusLabel1.Text = 版权所有:X*Y +X: + e.X.ToString() + ,Y: + e.Y.ToString(); if(e.Button=MouseButtons.Left) switch (ChoiceGr
9、ap) case (int)mySelected.Pencil: /选择的是铅笔 Pen pen1=new Pen(button14.BackColor,penWidth); pEnd.X = e.X; pEnd.Y = e.Y; g.DrawLine(pen1,pStart,pEnd); pStart = pEnd; /将已经绘制的终点作为下一次绘制的起点 break; case (int)mySelected.Eraser: Pen pen2 = new Pen(Color.White,penWidth); /定义白色画笔作为擦除效果 pEnd.X = e.X; pEnd.Y = e.Y;
10、 g.DrawLine(pen2,pStart,pEnd); pStart = pEnd; /将已经绘制的终点作为下一次绘制的起点 break; default: break; private void pictureBox1_MouseUp(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) /如果用户按下的是鼠标左键,记录终点坐标 pEnd.X = e.X; pEnd.Y = e.Y; switch (ChoiceGrap) case (int)mySelected.Line: /选择的是直线 Pen pen
11、1 = new Pen(button14.BackColor, penWidth); g.DrawLine(pen1, pStart, pEnd); break; case (int)mySelected.Ellipse: /选择的是空心椭圆 Change_Point(); Pen pen2 = new Pen(button14.BackColor, penWidth); g.DrawEllipse(pen2, pStart.X,pStart.Y, pEnd.X-pStart.X,pEnd.Y-pStart.Y); break; case (int)mySelected.FillEllipse
12、: /选择的是实心椭圆 Change_Point(); SolidBrush myBrush = new SolidBrush(button14.BackColor); Rectangle rec = new Rectangle(pStart.X, pStart.Y, pEnd.X - pStart.X, pEnd.Y - pStart.Y); g.FillEllipse(myBrush,rec); break; default: break; private void btnNew_Click(object sender, EventArgs e) pictureBox1.Refresh(); /刷新 private void btnExit_Click(object sender, EventArgs e) this.Close(); /关闭 相关截图如下: 五、实验小结(实验中遇到的问题及解决过程、实验中产生的错误及原因分析、实验体会和收获)1.本实验过后,掌握了Window工具中的MenuStript、GDI的作用以及使用,利用其成功的完成了记事本的格式设计2.学习到了文本编辑器的实现方法,能够通过查询资料用代码将其实现;3.在本次文本编辑器的实现过程中,学习到了一些重要的类以及函数六、附录参考文献和相关资料C#程序设计教程第二版
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1