zoukankan      html  css  js  c++  java
  • 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, 2);
                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, 2);
                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);                              //调用画笔功能
  • 相关阅读:
    CCF-CSP201512-3 画图
    CCF-CSP201512-2 消除类游戏
    CCF-CSP201606-4 游戏(BFS)
    CCF-CSP201604-2 俄罗斯方块
    HDU1035 Robot Motion(dfs)
    Java Srting之Calendar日历类(五)——Calendar中计算时间的方法add()
    java如何获取当前日期和时间
    double 类型怎样不用科学计数法表示并且使用Java正则表达式去掉Double类型的数据后面多余的0
    @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})注解作用
    java.util.Date.toString()方法实例
  • 原文地址:https://www.cnblogs.com/Mzg121584668/p/7452360.html
Copyright © 2011-2022 走看看