using System.Drawing;
using System.Windows.Forms; namespace ZhuoHuiSchoolroom.ZhuoHuiClass
{
/// <summary>
/// 实现窗体内简单画笔功能
/// </summary>
public class DrawClass
{
private Color __Color = new Color();
private Point __Start = new Point();
private Point __End = new Point();
private Form __frmMain = new Form();
private PictureBox __picMain = new PictureBox();
private Graphics __g = null;
private Pen __p = null; public Color Color
{
get { return this.__Color; }
set { this.__Color = value; }
}
public Point Start
{
get { return this.__Start; }
set { this.__Start = value; }
}
public Point End
{
get { return this.__End; }
set { this.__End = value; }
} public DrawClass(Form frmMain)
: this(frmMain, Color.Black)
{ }
public DrawClass(PictureBox picMian)
: this(picMian, Color.Red)
{ } public DrawClass(Form frmMain, Color c)
{
this.__frmMain = frmMain;
this.__g = Graphics.FromHwnd(frmMain.Handle);
this.__Color = c;
this.__p = new Pen(this.__Color, );
this.__frmMain.MouseDown += new MouseEventHandler(__frmMain_MouseDown);
this.__frmMain.MouseMove += new MouseEventHandler(__frmMain_MouseMove);
this.__frmMain.MouseUp += new MouseEventHandler(__frmMain_MouseUp);
} public DrawClass(PictureBox frmMain, Color c)
{
this.__picMain = frmMain;
this.__g = Graphics.FromHwnd(frmMain.Handle);
this.__Color = c;
this.__p = new Pen(this.__Color, );
this.__picMain.MouseDown += new MouseEventHandler(__frmMain_MouseDown);
this.__picMain.MouseMove += new MouseEventHandler(__frmMain_MouseMove);
this.__picMain.MouseUp += new MouseEventHandler(__frmMain_MouseUp);
} private void __frmMain_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
__End.X = e.X;
__End.Y = e.Y;
__g.DrawLine(this.__p, __Start, __End);
__Start = __End;
}
} private void __frmMain_MouseUp(object sender, MouseEventArgs e)
{ } private void __frmMain_MouseDown(object sender, MouseEventArgs e)
{
this.__Start.X = e.X;
this.__Start.Y = e.Y;
} }
} DrawClass draw = new ZhuoHuiClass.DrawClass(this.pic); //调用画笔功能

Winform在控件内实现简单画笔功能的更多相关文章

  1. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  2. winform窗体控件(全)

    回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...

  3. C#实现WinForm DataGridView控件支持叠加数据绑定

    我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支 ...

  4. winform基本控件----按钮

    这次来引用一个我们上课时候老师给的一个实验内容,来说一下winform程序设计中的按钮控件的使用.下面是我们老师给的实验内容. 实验目的: 掌握Winform的开发环境. 掌握窗体的创建和基本方法. ...

  5. [原创][开源]SunnyUI.Net, C# .Net WinForm开源控件库、工具类库、扩展类库、多页面开发框架

    SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...

  6. WinForm用户控件、动态创建添加控件、timer控件--2016年12月12日

    好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3       0 0     用户控件: 通过布局将多个控件整合为一个控件,根据自己的需要进行修改,可对用户控件内的所有控件及控件属性进行修 ...

  7. iOS开发UI篇—使用picker View控件完成一个简单的选餐应用

    iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 一.实现效果 说明:点击随机按钮,能够自动选取,下方数据自动刷新. 二.实现思路 1.picker view的有默认高度为162 ...

  8. WinForm给控件加入hint文字

    本文代码主要是参考别人的,仅为个人记录,方面后续使用~ 效果图: 主要代码在一个Win32Utility类中,代码如下: public static class Win32Utility { [Dll ...

  9. C# WinForm实现控件拖动实例介绍

    主要是设计控件的MouseDown.MouseLeave.MouseMove事件.一步步来吧:1.定义一个枚举类型,描述光标状态 private enum EnumMousePointPosition ...

随机推荐

  1. Python--day72--SweetAlert插件

    引用:http://www.cnblogs.com/liwenzhou/p/8718861.html 补充一个SweetAlert插件示例 点击下载Bootstrap-sweetalert项目. $( ...

  2. HDU 1026 BSF+优先队列+记录路径、

    #include<iostream> #include<cmath> #include<cstring> #include<cstdio> #inclu ...

  3. ios9.3.3版本下 document.execCommand("copy") 失败

    copyText()安卓,ios11,ios12都可用 ,并且不弹起输入键盘 // 复制copyText function copyText(text) { var input = document. ...

  4. 2019-7-29-WPF-元素裁剪-Clip-属性

    title author date CreateTime categories WPF 元素裁剪 Clip 属性 lindexi 2019-7-29 10:0:13 +0800 2019-1-3 15 ...

  5. C# 标准性能测试

    经常我写一个类,作为一个工具类,小伙伴会问我这个类的性能,这时我就需要一个标准的工具进行测试. 本文告诉大家如何使用 benchmarkdotnet 做测试. 现在在 github 提交代码,如果有小 ...

  6. springmvc web.xml和application.xml配置详情(附:完整版pom.xml)

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...

  7. Ubuntu 19.04安装phpipam软件

    1ftp下载xampp2安装xampp chmod 777sudo ./xampp.run3,ftp phpipam.tar.gz 解压 ./opt/lampp/www/phpipam/cp conf ...

  8. River Hopscotch-[二分查找、贪心]

    Description Every year the cows hold an event featuring a peculiar version of hopscotch that involve ...

  9. 递归实现深拷贝( 只要学过js递归,看不懂找我包会 )

    要用递归实现深拷贝,首先说说什么是深拷贝和浅拷贝 浅拷贝:一个值赋给另一个值,当原先的值不改变地址的情况下改变数据,另一个值跟着变 深拷贝:一个值赋给另一个值,当原先的值不改变地址的情况下改变数据,另 ...

  10. javascript中的深拷贝与浅拷贝

    javascript中的深拷贝与浅拷贝 基础概念 在了解深拷贝与浅拷贝的时候需要先了解一些基础知识 核心知识点之 堆与栈 栈(stack)为自动分配的内存空间,它由系统自动释放: 堆(heap)则是动 ...