zoukankan      html  css  js  c++  java
  • C# 我的小画板

    我的画板

    先看实现图

     实现过程

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    //**********************金燕电子****************************************
    namespace huaban
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                toolStrip1.Enabled = false;
                foreColor = Color.Black ;
                backColor = Color.White ; 
            }
            Color backColor = new Color();
            private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Graphics g = this.CreateGraphics();
                g.Clear(backColor);
                toolStrip1.Enabled = true;
                //创建一个Bitmap 
                theImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
                editFileName = "新建文件";
                //修改窗口标题 
                this.Text = "MyDraw	" + editFileName;
                ig = Graphics.FromImage(theImage);
                ig.Clear(backColor);
            }
            string editFileName = "";
            private Image theImage;
            public Graphics ig { get; private set; }
    
            private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                openFileDialog1.Multiselect = false;
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    //修改窗口标题 
                    this.Text = "MyDraw	" + openFileDialog1.FileName;
                    editFileName = openFileDialog1.FileName;
                    theImage = Image.FromFile(openFileDialog1.FileName);
                    Graphics g = this.CreateGraphics();
                    g.DrawImage(theImage, this.ClientRectangle);
                    ig = Graphics.FromImage(theImage);
                    ig.DrawImage(theImage, this.ClientRectangle);
                    //ToolBar可以使用了 
                    toolStrip1.Enabled = true;
                }
            }
    
            private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                saveFileDialog1.Filter = "图像(*.bmp)|*.bmp";
                saveFileDialog1.FileName = editFileName;
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    theImage.Save(saveFileDialog1.FileName, ImageFormat.Bmp);
                    this.Text = "MyDraw	" + saveFileDialog1.FileName;
                    editFileName = saveFileDialog1.FileName;
                }
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                //将Image中保存的图像,绘制出来 
                Graphics g = this.CreateGraphics();
                if (theImage != null)
                {
                    g.Clear(Color.White);
                    g.DrawImage(theImage, this.ClientRectangle);
                }
            }
            Color foreColor = new Color();
            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
    
                if (e.Button == MouseButtons.Left)        
                {
                    //如果选择文字输入,则打开strInput窗体 
                    if (drawTool == (int)drawTools.String)
                    {
                        Frm_Text inputBox = new Frm_Text();
                        inputBox.StartPosition = FormStartPosition.CenterParent;
                        if (inputBox.ShowDialog() == DialogResult.OK)
                        {
                            Graphics g = this.CreateGraphics();
                            Font theFont = this.Font;
                            g.DrawString(inputBox.textBox1.Text, theFont, new SolidBrush(foreColor), e.X, e.Y);
                            ig.DrawString(inputBox.textBox1.Text, theFont, new SolidBrush(foreColor), e.X, e.Y);
                        }
                    }
                    //如果开始绘制,则开始记录鼠标位置 
                    else if ((isDrawing = !isDrawing) == true)
                    {
                        startPoint = new Point(e.X, e.Y);
                        oldPoint = new Point(e.X, e.Y);
                    }
                }
            }
            int  drawTool = 0;
            enum drawTools
            {
                 None = 0,
                 Pen = 1,
                 Line = 2,
                 Ellipse = 3,
                 Rectangle = 4,
                 String = 5,
                 Rubber =6
            }
            Point oldPoint = new Point();
            Point startPoint = new Point();
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                Graphics g;
                g = this.CreateGraphics();
    
                if (isDrawing)
                {
                    switch (drawTool)
                    {
                        case (int)drawTools.None:
                            break;
                        case (int)drawTools.Pen:
                            //从上一个点到当前点绘制线段 
                            g.DrawLine(new Pen(foreColor, 1), oldPoint, new Point(e.X, e.Y));
                            ig.DrawLine(new Pen(foreColor, 1), oldPoint, new Point(e.X, e.Y));
                            oldPoint.X = e.X;
                            oldPoint.Y = e.Y;
                            break;
                        case (int)drawTools.Line:
                            //首先恢复此次操作之前的图像,然后再添加Line 
                            this.Frm_Main_Paint(this, new PaintEventArgs(this.CreateGraphics(), this.ClientRectangle));
                            g.DrawLine(new Pen(foreColor, 1), startPoint, new Point(e.X, e.Y));
                            break;
                        case (int)drawTools.Ellipse:
                            //首先恢复此次操作之前的图像,然后再添加Ellipse 
                            this.Frm_Main_Paint(this, new PaintEventArgs(this.CreateGraphics(), this.ClientRectangle));
                            g.DrawEllipse(new Pen(foreColor, 1), startPoint.X, startPoint.Y, e.X - startPoint.X, e.Y - startPoint.Y);
                            break;
                        case (int)drawTools.Rectangle:
                            //首先恢复此次操作之前的图像,然后再添加Rectangle 
                            this.Frm_Main_Paint(this, new PaintEventArgs(this.CreateGraphics(), this.ClientRectangle));
                            g.DrawRectangle(new Pen(foreColor, 1), startPoint.X, startPoint.Y, e.X - startPoint.X, e.Y - startPoint.Y);
                            break;
                        case (int)drawTools.String:
                            break;
                        case (int)drawTools.Rubber:
                            //用背景色绘制宽线段 
                            g.DrawLine(new Pen(backColor, 20), oldPoint, new Point(e.X, e.Y));
                            ig.DrawLine(new Pen(backColor, 20), oldPoint, new Point(e.X, e.Y));
                            oldPoint.X = e.X;
                            oldPoint.Y = e.Y;
                            break;
                    }
                }
            }
            bool isDrawing = false;
            private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                isDrawing = false;
                switch (drawTool)
                {
                    case (int)drawTools.Line:
                        ig.DrawLine(new Pen(foreColor, 1), startPoint, new Point(e.X, e.Y));
                        break;
                    case (int)drawTools.Ellipse:
                        ig.DrawEllipse(new Pen(foreColor, 1), startPoint.X, startPoint.Y, e.X - startPoint.X, e.Y - startPoint.Y);
                        break;
                    case (int)drawTools.Rectangle:
                        ig.DrawRectangle(new Pen(foreColor, 1), startPoint.X, startPoint.Y, e.X - startPoint.X, e.Y - startPoint.Y);
                        break;
                }
            }
    
            private void Frm_Main_Paint(object sender, PaintEventArgs e)
            {
                //将Image中保存的图像,绘制出来 
                Graphics g = this.CreateGraphics();
                if (theImage != null)
                {
                    g.Clear(Color.White);
                    g.DrawImage(theImage, this.ClientRectangle);
                }
            }
    
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                toolStripButton6.Checked = false;
                toolStripButton2.Checked = false;
                toolStripButton3.Checked = false;
                toolStripButton4.Checked = false;
                toolStripButton5.Checked = false;
                if (drawTool == (int)drawTools.Pen)
                {
                    drawTool = (int)drawTools.None ;
                    toolStripButton1.Checked = false ;
                }
                else
                {
                    drawTool = (int)drawTools.Pen;
                    toolStripButton1.Checked = true;
                }   
            }
    
            private void toolStripButton2_Click(object sender, EventArgs e)
            {
                toolStripButton1.Checked = false;
                toolStripButton6.Checked = false;
                toolStripButton3.Checked = false;
                toolStripButton4.Checked = false;
                toolStripButton5.Checked = false;
                if (drawTool == (int)drawTools.Line)
                {
                    drawTool = (int)drawTools.None;
                    toolStripButton2.Checked = false;
                }
                else
                {
                    drawTool = (int)drawTools.Line;
                    toolStripButton2.Checked = true;
                }
            }
    
            private void toolStripButton3_Click(object sender, EventArgs e)
            {
    
                toolStripButton1.Checked = false;
                toolStripButton2.Checked = false;
                toolStripButton6.Checked = false;
                toolStripButton4.Checked = false;
                toolStripButton5.Checked = false;
                if (drawTool == (int)drawTools.Rectangle)
                {
                    drawTool = (int)drawTools.None;
                    toolStripButton3.Checked = false;
                }
                else
                {
                    drawTool = (int)drawTools.Rectangle;
                    toolStripButton3.Checked = true;
                }           
            }
    
            private void toolStripButton4_Click(object sender, EventArgs e)
            {
                toolStripButton1.Checked = false;
                toolStripButton2.Checked = false;
                toolStripButton3.Checked = false;
                toolStripButton6.Checked = false;
                toolStripButton5.Checked = false;
                if (drawTool == (int)drawTools.Ellipse)
                {
                    drawTool = (int)drawTools.None;
                    toolStripButton4.Checked = false;
                }
                else
                {
                    drawTool = (int)drawTools.Ellipse;
                    toolStripButton4.Checked = true;
                }  
            }
    
            private void toolStripButton5_Click(object sender, EventArgs e)
            {
    
                toolStripButton1.Checked = false;
                toolStripButton2.Checked = false;
                toolStripButton3.Checked = false;
                toolStripButton4.Checked = false;
                toolStripButton6.Checked = false;
                if (drawTool == (int)drawTools.String)
                {
                    drawTool = (int)drawTools.None;
                    toolStripButton5.Checked = false;
                }
                else
                {
                    drawTool = (int)drawTools.String;
                    toolStripButton5.Checked = true;
                }  
            }
    
            private void toolStripButton6_Click(object sender, EventArgs e)
            {
                toolStripButton1.Checked = false;
                toolStripButton2.Checked = false;
                toolStripButton3.Checked = false;
                toolStripButton4.Checked = false;
                toolStripButton5.Checked = false;
                if (drawTool == (int)drawTools.Rubber )
                {
                    drawTool = (int)drawTools.None;
                    toolStripButton6.Checked = false;
                }
                else
                {
                    drawTool = (int)drawTools.Rubber;
                    toolStripButton6.Checked = true;
                }  
            }
    
            private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (colorDialog1.ShowDialog() == DialogResult.OK)
                {
                    foreColor = colorDialog1.Color  ;
                }
                
            }
        }
    }
    

      

     金燕电子

  • 相关阅读:
    Bootstrap学习笔记(2)--栅格系统深入学习
    如何用手机访问电脑上的html文件
    Jquery学习笔记(11)--jquery的ajax删除用户,非常简单!
    Jquery学习笔记(10)--ajax删除用户,使用了js原生ajax
    Jquery学习笔记(9)--注册验证复习(未用到ajax)
    CSS学习笔记(3)--表格边框
    CSS学习笔记(2)--html中checkbox和radio
    Jquery学习笔记(8)--京东导航菜单(2)增加弹框
    Jquery学习笔记(7)--京东导航菜单
    CSS学习笔记(1)--浮动
  • 原文地址:https://www.cnblogs.com/guyandianzi/p/7550915.html
Copyright © 2011-2022 走看看