Numericupdown框线宽

时间:2017-06-08 16:21:37

标签: c# numericupdown

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 MiniPaint
{
    public partial class Form1 : Form
    {
        Graphics g;
        Pen p = new Pen(Color.Black, 1);
        Point sp = new Point(0, 0);
        Point ep = new Point(0, 0);
        int k = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void red_Click(object sender, EventArgs e)
        {
            p.Color = red.BackColor;
            default1.BackColor = red.BackColor;
        }

        private void green_Click(object sender, EventArgs e)
        {
            p.Color = green.BackColor;
            default1.BackColor = green.BackColor;
        }

        private void blue_Click(object sender, EventArgs e)
        {
            p.Color = blue.BackColor;
            default1.BackColor = blue.BackColor;
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            sp = e.Location;
            if (e.Button == MouseButtons.Left);
            k = 1;

        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            k = 0;

        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (k == 1)
            {
                ep = e.Location;
                g = this.CreateGraphics();
                g.DrawLine(p, sp, ep);
            }

            sp = ep;

        }

        private void del1_Click(object sender, EventArgs e)
        {
            g.Clear(Color.White);

        }

        private void yellow_Click(object sender, EventArgs e)
        {
            p.Color = yellow.BackColor;
            default1.BackColor = yellow.BackColor;
        }

        private void purple_Click(object sender, EventArgs e)
        {
            p.Color = purple.BackColor;
            default1.BackColor = purple.BackColor;
        }

        private void brown_Click(object sender, EventArgs e)
        {
            p.Color = brown.BackColor;
            default1.BackColor = brown.BackColor;
        }

        private void black_Click(object sender, EventArgs e)
        {
            p.Color = black.BackColor;
            default1.BackColor = black.BackColor;
        }

        private void nud1_ValueChanged(object sender, EventArgs e)
        {





        }

        private void white_Click(object sender, EventArgs e)
        {
            p.Color = white.BackColor;
            default1.BackColor = white.BackColor;
        }
    }
}

我差不多用c#中的minipaint代码完成了。我想再添加一件东西,我可以通过numericupadown框更改我要绘制的线的粗细(宽度),我试图让它工作超过一个小时。有人可以帮我解决它吗?有一个简单的方法吗? (nud1是数字上升框)

1 个答案:

答案 0 :(得分:0)

在数字上下值更改事件中,更改您正在使用的笔的粗细,我建议将当前颜色存储在一个变量中,当您重新设置时,可以将值分配回笔中的值-initialize。

这个MSDN link显示了来自System.Drawing的Pen类的详细信息。

p = new Pen(Color, (float)nud1.Value);