C# 数字上下框线宽
我的c#minipaint代码快用完了。我想再增加一件事,那就是我可以通过numericupadown框改变我要画的线的厚度(宽度),我正试图让它工作一个多小时。有人能帮我吗?有简单的方法吗?(nud1是numeric updown框)在数字上下值更改事件中,更改您正在使用的笔的厚度,我建议将当前颜色存储在一个变量中,您可以在重新初始化时在值更改事件中将其分配回笔 这将显示System.Drawing中笔类的详细信息C# 数字上下框线宽,c#,numericupdown,C#,Numericupdown,我的c#minipaint代码快用完了。我想再增加一件事,那就是我可以通过numericupadown框改变我要画的线的厚度(宽度),我正试图让它工作一个多小时。有人能帮我吗?有简单的方法吗?(nud1是numeric updown框)在数字上下值更改事件中,更改您正在使用的笔的厚度,我建议将当前颜色存储在一个变量中,您可以在重新初始化时在值更改事件中将其分配回笔 这将显示System.Drawing中笔类的详细信息 using System; using System.Collections.
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;
}
}
}
我这样做了,现在我得到了这个错误:CS0077 as运算符必须与引用类型或可为null的类型一起使用(“int”是不可为null的值类型)从参数中删除as int。我相信这个值已经是一个整数了,我不知道为什么我会这么说。现在我有一个错误:参数2:无法从“十进制”转换为“浮点”,这是因为nud1。这个值是十进制的,Pen使用浮点表示宽度。编辑我的文章与参考资料和更新的代码链接。它真的工作!此外,您还提到添加变量,以便在事件发生更改时,我可以将其分配回我的笔值。有没有一种不用新变量的方法?谢谢你的宽度问题,我有!
p = new Pen(Color, (float)nud1.Value);