简单的c#winform画图工具

简介: 1首先创建一个form窗体 然后拖入pictureBox作为画板 2创建两个button按钮 一个为“开始画画 ” 一个“保存”对于画板的创建 首先 我们得声明一些有关变量Bitmap myImage; /...

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;
            }
目录
相关文章
|
2月前
|
C#
C# WinForm发送Email邮件
C# WinForm发送Email邮件
C# WinForm发送Email邮件
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
104 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
75 0
|
2月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
69 0
|
7月前
|
小程序 C#
C#WinForm实现Loading等待界面
上篇博客中解决了程序加载时屏幕闪烁的问题。 但是,加载的过程变得很缓慢。 这个给用户的体验也不是很好,我这里想加一个Loading的进度条。 项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。
196 0
|
9月前
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
47 0
|
2月前
|
JavaScript C#
C#winForm程序与html JS交互调用
C#winForm程序与html JS交互调用
|
2月前
|
C# 开发者
35.c#:winform窗口
35.c#:winform窗口
19 1
|
10月前
|
程序员 C# 索引
C#之二十 Win Form对话框
C#之二十 Win Form对话框
49 0
|
10月前
|
Java C# 索引
C#之 十九 使用WinForm控件
C#之 十九 使用WinForm控件
146 0