C# NumericUpDown控件用法详解(附带实例)
C# 中的 NumericUpDown 控件可以调节数字大小,图标为:
此控件创建成功后,可以单击此控件的上按钮图标减少数值,单击此控件的下按钮图标增加数值:
上述程序的缺点是想要重新计时时,无法将定时器归零,这将是读者的习题。
【实例 2】基础数学加法运算,这个程序可以使用小数字数字段选择 NumberUpDown 的小数字数,如果小数字数是 1 则 Increment 是 0.1,如果小数字数是 2 则 Increment 是 0.01。每当有 NumberUpDown 的 Value 改变时,会自动更新加法结果。

此控件创建成功后,可以单击此控件的上按钮图标减少数值,单击此控件的下按钮图标增加数值:

C# NumericUpDown常用属性
下列是 NumericUpDown 几个常用的属性:| NumericUpDown属性 | 说明 |
|---|---|
| DecimalPlaces | 默认是 0,表示是整数。如果想要设有小数,可以在此设定小数的位数 |
| Value | NumericUpDown 控件的值,默认是使用最小值,默认是 0 |
| Maximum | NumericUpDown 控件的最大值,默认是 100 |
| Minimum | NumericUpDown 控件的最小值,默认是 0 |
| Increment | 单击上按钮和下按钮时的差异值,默认是 1 |
| ReadOnly | 设定使用者可否在此输入数值,ReadOnly 是只读,其默认是 false 表示可以手动输入数值,如果设为 true 则无法手动输入数值 |
C# NumericUpDown常用方法
- UpButton() 方法相当于单击上按钮,可以根据 Increment 增加数值;
- DownButton() 方法相当于单击下按钮,可以根据 Increment 减少数值。
C# NumericUpDown常用事件
如果 NumericUpDown 控件的内容更改,则会产生 ValueChanged 事件。定时器设计
【实例 1】定时器设计,当单击“开始计时”按钮,可以开始计时。如果单击“计时停止”按钮,可以结束计时同时计时结果字段会显示秒数。
namespace ch
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
numericUpDown1.UpButton(); // 更新NumericUpDown
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 1000; // 每秒更新
}
private void btnStart_Click(object sender, EventArgs e)
{
timer1.Start(); // 定时器开始运作
}
private void btnStop_Click(object sender, EventArgs e)
{
timer1.Stop(); // 定时器停止运作
lblResult.Text = numericUpDown1.Value.ToString();
}
}
}
执行结果为:
上述程序的缺点是想要重新计时时,无法将定时器归零,这将是读者的习题。
【实例 2】基础数学加法运算,这个程序可以使用小数字数字段选择 NumberUpDown 的小数字数,如果小数字数是 1 则 Increment 是 0.1,如果小数字数是 2 则 Increment 是 0.01。每当有 NumberUpDown 的 Value 改变时,会自动更新加法结果。

namespace ch
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] decimalPlaces = { "0", "1", "2" };
cboDecimalPlaces.Items.AddRange(decimalPlaces); // 小数字数项目
// 小数品项无法手动更改 DropDownList
cboDecimalPlaces.DropDownStyle = ComboBoxStyle.DropDownList;
cboDecimalPlaces.SelectedIndex = 0; // 显示索引0
}
private void cboDecimalPlaces_SelectedIndexChanged(object sender, EventArgs e)
{
if (cboDecimalPlaces.Text.Equals("0"))
{
numericUpDown1.DecimalPlaces = 0;
numericUpDown1.Increment = 1; // 增减值是1
numericUpDown2.DecimalPlaces = 0;
numericUpDown2.Increment = 1; // 增减值是1
}
else if (cboDecimalPlaces.Text.Equals("1"))
{
numericUpDown1.DecimalPlaces = 1;
numericUpDown1.Increment = 0.1M; // 增减值是0.1
numericUpDown2.DecimalPlaces = 1;
numericUpDown2.Increment = 0.1M; // 增减值是0.1
}
else if (cboDecimalPlaces.Text.Equals("2"))
{
numericUpDown1.DecimalPlaces = 2;
numericUpDown1.Increment = 0.01M; // 增减值是0.01
numericUpDown2.DecimalPlaces = 2;
numericUpDown2.Increment = 0.01M; // 增减值是0.01
}
}
private void numericUpDown2_ValueChanged(object sender, EventArgs e)
{
UpdateResult(); // 更新结果值
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
UpdateResult(); // 更新结果值
}
private void UpdateResult()
{
var total = numericUpDown1.Value + numericUpDown2.Value;
lblResult.Text = total.ToString();
}
}
}
执行结果为:
ICP备案:
公安联网备案: