Numericupdown框线宽

Numericupdown box line width

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 是数字上下框)

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

MSDN link 显示了 System.Drawing 中笔 class 的详细信息。

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