清空画板:

private void BtnReset_Click(object sender, EventArgs e)

{

graphics.Clear(pnlPanel.BackColor);

clrdColorDialog.Reset();

btnKleur.BackColor = default(Color);

}

选择颜色:

private void BtnColor_Click(object sender, EventArgs e)

{

clrdColorDialog.ShowDialog();

Color clrChose = clrdColorDialog.Color;

pen = new Pen(clrChose,5);

btnColor.BackColor = clrChose;

}

按鼠标左键画画(根据不同画笔):

private void PnlPanel_MouseMove(object sender, MouseEventArgs e)

{

//检查是否选择颜色

if (e.Button == MouseButtons.Left)

{

if (pen == null)

{

MessageBox.Show("请选择一个颜色。");

return;

}

}

//根据不同画笔链接不同Class

switch (cmbPaint.SelectedIndex)

{

case 0:

paint = new Line(graphics, pen);

break;

case 1:

paint = new Ball(graphics, pen);

break;

case 2:

paint = new Square(graphics, pen);

break;

default:

paint = new Line(graphics, pen);

break;

}

//没有选择画笔类型则无事发生

if (cmbKwast.SelectedIndex == -1) return;

//按鼠标左键画画

if(e.Button == MouseButtons.Left)

{

if (cmbPaint.SelectedItem != null)

{

paint.Draw(e.Location);

label1.Text = e.Location.ToString(); //显示位置

}

}

}

前提条件:

private Graphics graphics;

private Pen pen;

Paint paint; //此为一个新建Class

public Form1()

{

InitializeComponent();

graphics = pnlPanel.CreateGraphics();

}

Paint Class代码:

public abstract class Paint

{

public Graphics _graphics { get; set; }

public Pen _pen { get; set; }

public Paint(Graphics graphics, Pen pen)

{

_graphics = graphics;

_pen = pen;

}

public abstract void Draw(Point p);

}

例子:画笔类型:由圆组成:

namespace 画画小程序

{

public class Ball : Paint

{

public Ball(Graphics graphics, Pen pen) : base(graphics, pen)

{

}

public override void Draw(Point p)

{

Brush brush = _pen.Brush;

_graphics.FillEllipse(brush, p.X, p.Y, 10, 10);

}

}

}

或者方块:

public class Square : Paint

{

public Square(Graphics graphics, Pen pen): base(graphics,pen)

{

}

public override void Draw(Point p)

{

Brush brush = _pen.Brush;

_graphics.FillRectangle(brush,p.X,p.Y, 10, 10);

}

}

或者斜线:

public class Line : Paint

{

public Line(Graphics graphics, Pen pen):base(graphics,pen)

{

}

public override void Draw(Point p)

{

_graphics.DrawLine(_pen, new Point(p.X, p.Y), new Point(p.X + 10, p.Y - 10));

}

}

c# WindowsForm上使用Panel制作画板的一些小功能相关推荐

  1. canvas制作画板

    canvas画板的制作 今天想给大家分享下canvas教程,有制作画板的源代码,html,css,javascript,图片素材在下面,快去体验下!!!喜欢伙伴记得关注哦,想要其他源代码记得在评论说下 ...

  2. 如何使用EPLAN PRO PANEL 制作部件-带3D接线部分

    如何使用EPLAN PRO PANEL 制作部件-带3D接线部分 声明 使用 EPLAN Pro panel 软件需准备的条件 1.创建原理图部分 2.将3D图导入为"宏" 3.修 ...

  3. Windows上使用gitbook制作电子书

    0. 前言 第一次在windows上使用gitbook制作电子书,在网上搜了好多资料,自己亲手试了下并整理如下. 1. 准备工具 Step1: 下载nodejs(nodejs中文官方): http:/ ...

  4. Moho Pro - Mac 上一款专业的二维动画制作软件,强大的功能让你尽情发挥创意

    Moho Pro - Mac 上一款专业的二维动画制作软件,强大的功能让你尽情发挥创意 Moho,以前被称为动画工作室专业版,是最好的质量的2D动画软件之一.这个程序是理想的专业人士寻找一个更有效的替 ...

  5. python使用matplotlib制作画板和轴

    [高心星出品] 文章目录 前言 一.安装matplotlib库 二.使用matploatlib制作画板和轴 1.引入库 2.创建画板和轴 总结 前言 Matplotlib 是 Python 的绘图库. ...

  6. 原来AE还能上云渲染制作,再也不怕效率慢了

    Adobe After Effects(简称为AE)是Adobe公司推出的一款图形视频处理软件,适用于从事设计和视频特技的机构,包括电视台.动画制作公司.个人后期制作工作室以及多媒体工作室.属于层类型 ...

  7. 怎样一键上传照片制作电子杂志?

    在数字化时代,电子杂志成为了一种越来越受欢迎的出版方式.相比传统的纸质杂志,电子杂志具有更加便捷.环保和互动性强的特点.但是,对于许多新手来说,制作电子杂志可能仍然是一件比较困难的事情.本文将介绍一种 ...

  8. Unity制作随机数字抽奖小案例

    Unity制作随机数字抽奖小案例 1. 搭建 UI 界面 2. 实现思路 2-1. 创建 RandomNumber 类 [挂载在每个抽奖格子(Numbers下面的Image)] 2-2. 创建 Sta ...

  9. WPF制作的一个小功能,智能提示(IntelliSense)

    WPF制作的一个小功能,智能提示(IntelliSense) 原文 http://www.cnblogs.com/scheshan/archive/2012/06/30/2570867.html 最近 ...

  10. pb程序怎么发布到iis_怎么使用抖音小程序第三方平台系统开发制作发布抖音小程序+教程...

    怎么使用抖音小程序第三方平台系统开发制作发布抖音小程序+教程 抖音短视频APP发布<2019年抖音数据报告>显示,其日活跃用户已经于2020年1月达到4亿,抖音APP受到广大用户追捧的同时 ...

最新文章

  1. JAVA实现在数据不匹配时把数据写到文件中
  2. sqlite工具类 java_Java之泛型、集合工具类
  3. C#如何释放已经加载的图片 (转)
  4. Java中的几种对象(PO、VO、DAO、BO、POJO)
  5. 如何修改Qt Creator的界面语言
  6. 99个wordpress经典插件
  7. SQL:postgresql查询结果加一个自定义的列
  8. python注册大漠插件,大漠插件安装包
  9. 十大排序算法总结与实现
  10. “死机短信”缠上山寨手机 往下翻就死机黑屏
  11. SG3525matlab,基于SG3525的BOOST变换器
  12. 体胖还需勤跑步,人丑就该多读书!
  13. AMS1117稳压芯片介绍
  14. c++合理利用adl来重载概念
  15. 2017东北四省赛G题
  16. 如何应对 DDoS 勒索攻击?
  17. 百度图像识别API调用(python)
  18. VIM源生linux代码编辑器使用
  19. 912 计算机考研专业课,2019清华大学计算机考研912考试教材如何选择?
  20. 民安汇智量表科普!满意度调查量表怎么选?

热门文章

  1. DOM事件+正则表达式
  2. 拓嘉辰丰:把握活动规则,玩转拼多多万人团
  3. mysql服务重启后不见了_Win10更新后,MySQL服务莫名消失的问题
  4. R语言使用sort函数对日期向量数据进行排序、默认从小到大升序排序、设置decreasing参数为真进行降序排序
  5. mysql 统计七日留存率_1.七日留存率-SQL实现
  6. 利用“串口调试助手”等软件调试 PROTEUS 环境中 51单片机 的串行通信
  7. 生物识别设备有问题_有您数据的生物识别
  8. vue 之手机号验证、正则验证手机号是否正确、手机号验证码信息弹窗
  9. 改造摄像头模块成开发板
  10. Caused by: org.apache.thrift.TApplicationException: Required field ‘filesAdded‘ is unset