Winform在控件内实现简单画笔功能
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在控件内实现简单画笔功能的更多相关文章
- 在DevExpress程序中使用Winform分页控件直接录入数据并保存
一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...
- winform窗体控件(全)
回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...
- C#实现WinForm DataGridView控件支持叠加数据绑定
我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支 ...
- winform基本控件----按钮
这次来引用一个我们上课时候老师给的一个实验内容,来说一下winform程序设计中的按钮控件的使用.下面是我们老师给的实验内容. 实验目的: 掌握Winform的开发环境. 掌握窗体的创建和基本方法. ...
- [原创][开源]SunnyUI.Net, C# .Net WinForm开源控件库、工具类库、扩展类库、多页面开发框架
SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...
- WinForm用户控件、动态创建添加控件、timer控件--2016年12月12日
好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3 0 0 用户控件: 通过布局将多个控件整合为一个控件,根据自己的需要进行修改,可对用户控件内的所有控件及控件属性进行修 ...
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 一.实现效果 说明:点击随机按钮,能够自动选取,下方数据自动刷新. 二.实现思路 1.picker view的有默认高度为162 ...
- WinForm给控件加入hint文字
本文代码主要是参考别人的,仅为个人记录,方面后续使用~ 效果图: 主要代码在一个Win32Utility类中,代码如下: public static class Win32Utility { [Dll ...
- C# WinForm实现控件拖动实例介绍
主要是设计控件的MouseDown.MouseLeave.MouseMove事件.一步步来吧:1.定义一个枚举类型,描述光标状态 private enum EnumMousePointPosition ...
随机推荐
- stl_tree.h/insert_unique()
// 安插新值:節點鍵值不允許重複,若重複則安插無效. // 注意,傳回值是個pair,第一元素是個 RB-tree 迭代器,指向新增節點, // 第二元素表示安插成功與否. template < ...
- (二)C#编程基础复习——变量和常量
今天要复习一下C#基础中的变量和常量,所谓变量,就是用来存储特定类型的数据,分为值类型和引类型,可以根据需要随时改变变量中所村存储的数据值,变量必须先声明,然后才能赋值:常量就是固定不变的值,常量的变 ...
- linux下svn清除非版本控制文件的方法
使用svn status命令,文件名前面显示问好的就是非版本控制的文件
- python模块之序列化模块
序列化 """ 序列--字符串 序列化--其他数据类型转化为字符串数据类型 反序列化--字符串转化为其他数据类型 """ json模块 &q ...
- P1099 双连击
题目描述 我们假设一个二位整数 \(N(10 \le N \le 99)\) ,它的十位上的数字是 \(A\) ,个位上的数字是 \(B\) ,如果 \(A\) 和 \(B\) 的比例关系满足 \(A ...
- windows常用命令行命令
https://blog.csdn.net/qq_32451373/article/details/77743869 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗 ...
- 学习better-scroll与vue结合使用
better-scroll,移动端滚动场景需求的插件 例: 做一个上下滚动,左右两边关联(滑动右侧左侧对应的类别显示高亮,点击左侧的类别名称右侧滑动到对应的位置) 如图: 分析:滑动右侧的时候左侧对应 ...
- dotnet core 黑科技·String
本文来告诉大家 dotnet core 里面使用的黑科技,如何提高String.IndexOf(char)的性能 在Performance Improvements in .NET Core有说道哪些 ...
- linux包之dracut
这是一个工具类,不是一个后台服务类 centos7.2-minimal就下面三个包 [root@1st-kvm ~]# rpm -qa|grep dracutdracut-config-rescue- ...
- umask 设置
背景: 有时候需要在linux上从其他人的目录里copy文件过来. 最近遇上的事情很麻烦,就是copy的时候发现很多文件copy不过来,copy一个文件夹时,当前文件把权限修改了,结果子目录的中的还没 ...