关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

C# GUI+开发一个简易画板

发布时间:2019-12-02 15:05:01

利用C#的窗口程序开发一个简易画板

父窗体

20181227120131339.png

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Sketchpad

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            保存SToolStripMenuItem.Enabled = false;

            this.timer1.Interval = 1000;

            this.timer1.Enabled = true;

            IsMdiContainer = true;

            垂直平铺ToolStripMenuItem.Enabled = false;

            水平平铺ToolStripMenuItem.Enabled = false;

            叠加ToolStripMenuItem.Enabled = false;

            重排ToolStripMenuItem.Enabled = false;

        }

        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)

        {

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Title = "打开文件";

            ofd.Filter = "图片文件(*.jpg;*.png)|*.jpg;*.png|所有文件(*.*)|*.*";

            if(ofd.ShowDialog()==DialogResult.OK)

            {

                Form2 form = new Form2();

                form.MdiParent = this;

                form.Show();

                form.Text = ofd.FileName;

                string imgPath = ofd.FileName;

                form.pictureBox1.Load(imgPath);

                if (ofd.FileName != "")

                {

                    保存SToolStripMenuItem.Enabled = true;

                    垂直平铺ToolStripMenuItem.Enabled = true;

                    水平平铺ToolStripMenuItem.Enabled = true;

                    叠加ToolStripMenuItem.Enabled = true;

                    重排ToolStripMenuItem.Enabled = true;

                }

            }   

        }

        private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)

        {

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Title = "保存文件";

            sfd.Filter = "图片文件(*.jpg)|*.jpg|所有文件(*.*)|*.*";

            sfd.ShowDialog();

        }

        private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form2 form = new Form2();

            form.MdiParent = this;

            form.Show();

            保存SToolStripMenuItem.Enabled = true;

            垂直平铺ToolStripMenuItem.Enabled = true;

            水平平铺ToolStripMenuItem.Enabled = true;

            叠加ToolStripMenuItem.Enabled = true;

            重排ToolStripMenuItem.Enabled = true;

        }

        private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            this.LayoutMdi(MdiLayout.TileVertical);

        }

        private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            this.LayoutMdi(MdiLayout.TileHorizontal);

        }

        private void 叠加ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            this.LayoutMdi(MdiLayout.Cascade);

        }

        private void 重排ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            this.LayoutMdi(MdiLayout.ArrangeIcons);

        }

        private void 关于AToolStripMenuItem_Click(object sender, EventArgs e)

        {

            MessageBox.Show("制作者:");

        }

        private void 颜色CToolStripMenuItem_Click(object sender, EventArgs e)

        {

            ColorDialog color = new ColorDialog();

            color.ShowDialog();

        }

        private void toolStripButton1_Click(object sender, EventArgs e)

        {

            打开OToolStripMenuItem_Click(sender, e);

        }

        private void toolStripButton2_Click(object sender, EventArgs e)

        {

            保存SToolStripMenuItem_Click(sender, e);

        }

        private void toolStripButton3_Click(object sender, EventArgs e)

        {

            新建NToolStripMenuItem_Click(sender, e);

        }

        private void 工具栏TToolStripMenuItem_Click(object sender, EventArgs e)

        {

            工具栏TToolStripMenuItem.Checked = !工具栏TToolStripMenuItem.Checked;

            toolStrip1.Visible = !toolStrip1.Visible;

        }

        private void 状态条SToolStripMenuItem_Click(object sender, EventArgs e)

        {

            状态条SToolStripMenuItem.Checked = !状态条SToolStripMenuItem.Checked;

            statusStrip1.Visible = !statusStrip1.Visible;

        }

        private void timer1_Tick_1(object sender, EventArgs e)

        {

            toolStripStatusLabel1.Text = "时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            this.statusStrip1.Refresh();

        }

        private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (this.ActiveMdiChild == null)

            {

                Application.Exit();

            }

            else

            {

                this.ActiveMdiChild.Close();

                Application.Exit();

            }

        }

    }

}

子窗体

20181227120425409.png

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Sketchpad

{

    public partial class Form2 : Form

    {

        private int pictype = 0;

        private Point orgP, endP, mP;

        public Pen myPen = new Pen(Color.Black, 3);

        Graphics g;

        public Form2()

        {

            InitializeComponent();

        }

        private void Form2_Load(object sender, EventArgs e)

        {

        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)

        {

            if(e.Button==MouseButtons.Left)

            {

                orgP.X = e.X;

                orgP.Y = e.Y;

            }

        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)

        {

            if (e.Button == MouseButtons.Left)

            {

                g = this.pictureBox1.CreateGraphics();

                endP.X = e.X;

                endP.Y = e.Y;

                if (pictype == 4)

                {

                    g.DrawLine(myPen, mP, endP);

                    mP = endP;

                }

                if (pictype != 4)

                {

                    pictureBox1.Refresh();

                }

            }

        }

        private void pictureBox1_Paint(object sender, PaintEventArgs e)

        {

            switch (pictype)

            {

                case 1:

                    e.Graphics.DrawLine(myPen, orgP, endP);//直线

                    break;

                case 2:

                    Rectangle rectangle = new Rectangle(orgP.X, orgP.Y, System.Math.Abs(endP.X), System.Math.Abs(endP.Y));//矩形

                    e.Graphics.DrawRectangle(myPen, rectangle);

                    break;

                case 3:

                    Rectangle Rec = new Rectangle(orgP.X, orgP.Y, System.Math.Abs(endP.X), System.Math.Abs(endP.Y));//椭圆

                    e.Graphics.DrawEllipse(myPen, Rec);

                    break;

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            pictype = 1;

            pictureBox1.Cursor = Cursors.Cross;

        }

        private void button2_Click(object sender, EventArgs e)

        {

            pictype = 2;

            pictureBox1.Cursor = Cursors.Cross;

        }

        private void button3_Click(object sender, EventArgs e)

        {

            pictype = 3;

            pictureBox1.Cursor = Cursors.Cross;

        }

        private void button4_Click(object sender, EventArgs e)

        {

            pictype = 4;

            pictureBox1.Cursor = Cursors.Cross;

        }

        private void button5_Click(object sender, EventArgs e)

        {

            pictype = 5;

            pictureBox1.Cursor = Cursors.Cross;

        }

    }

}



/template/Home/Zkeys/PC/Static