简介

KryptonNumericUpDown 是增强型数字微调框控件,替代标准 System.Windows.Forms.NumericUpDown。它由文本框与上下箭头按钮组成,只接受限定范围内的数值,支持小数位数、千分位分隔符、十六进制显示等,适合数量、金额、参数阈值等数值录入场景。

KryptonNumericUpDown 示例截图
KryptonNumericUpDown 数值微调录入

常用属性

属性类型说明
Valuedecimal当前数值
Minimumdecimal允许的最小值(默认 0)
Maximumdecimal允许的最大值(默认 100)
Incrementdecimal点击箭头时的步进值(默认 1)
DecimalPlacesint显示的小数位数(默认 0)
ThousandsSeparatorbool是否显示千分位分隔符
Hexadecimalbool是否以十六进制显示
UpDownAlignLeftRightAlignment箭头按钮位置(Left / Right)
InterceptArrowKeysbool方向键 ↑↓ 是否调整数值
ReadOnlybool是否只读(仅能用箭头调整)
StateCommon.Content.Color1Color数值文字颜色
StateCommon.Border.Color1Color边框颜色

快速上手

基本用法

using Krypton.Toolkit;

var numQty = new KryptonNumericUpDown();
numQty.Location = new Point(16, 16);
numQty.Size = new Size(120, 26);
numQty.Minimum = 1;
numQty.Maximum = 9999;
numQty.Value = 1;

// 数值改变事件
numQty.ValueChanged += (s, e) =>
    lblTotal.Text = $"金额:{numQty.Value * 19.9m:C}";

this.Controls.Add(numQty);

小数与千分位

var numPrice = new KryptonNumericUpDown();
numPrice.DecimalPlaces = 2;          // 两位小数
numPrice.Increment = 0.5m;           // 步进 0.5
numPrice.ThousandsSeparator = true;  // 显示千分位
numPrice.Maximum = 1000000m;

进阶用法

程序化调整数值

// 模拟点击上下箭头(自动受 Min/Max 约束)
numQty.UpButton();
numQty.DownButton();

// 直接赋值(超出范围会被自动钳制到边界)
numQty.Value = 500;

十六进制颜色值录入

var numHex = new KryptonNumericUpDown();
numHex.Hexadecimal = true;   // 以十六进制显示
numHex.Minimum = 0;
numHex.Maximum = 255;        // 0x00 ~ 0xFF
numHex.Value = 255;          // 显示为 FF

numHex.ValueChanged += (s, e) =>
    Console.WriteLine($"当前值:0x{(int)numHex.Value:X2}");
提示:Value 类型是 decimal;若需要纯文本列表循环(如「高 / 中 / 低」),请改用 KryptonDomainUpDown。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonNumericUpDown Examples/

包含:范围与步进、小数/千分位、十六进制显示演示。

相关控件