mcpField
S
syncfusion-winforms-numericupdown

syncfusion-winforms-numericupdown

github.com/syncfusion开发279 次安装1 周前更新
代码仓库

关于 syncfusion-winforms-numericupdown

为 WinForms 开发者提供 Syncfusion NumericUpDownExt 数值输入控件的实现指导,适用于需要范围约束与格式定制的表单。它支持十六进制显示、主题边框及负数颜色设置。

主要功能

  1. 01最小值、最大值与步进约束
  2. 02十六进制数值显示
  3. 03小数位与千位分隔符
  4. 04主题边框和颜色定制
  5. 05键盘输入与文本对齐

适用场景

  1. 01设置表单中的数值参数输入
  2. 02输入带小数精度的金额或税率
  3. 03在颜色编辑器中输入十六进制值
  4. 04为测量或校准工具配置受限数值

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-numericupdown

安装后在 Claude Code 中输入/syncfusion-winforms-numericupdown确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
appearance-customization.md
behavior-settings.md
display-settings.md
getting-started.md
themes-and-styles.md
value-settings.md

详细介绍

在 Syncfusion WinForms 中实现 NumericUpDownExt

本技能将指导你实现 Syncfusion WinForms NumericUpDownExt 控件——一种增强型数字增减控件,支持 XP 主题、数值约束、十六进制显示、小数格式设置和专业外观功能。

适用场景

当用户需要以下功能时,请使用本技能:

  • 实现支持 XP 主题的增强型数字增减控件
  • 设置数值约束(Minimum、Maximum、Increment 值)
  • 在数字输入中显示十六进制值
  • 设置数字格式,包括小数位数和千位分隔符
  • 应用主题边框(FixedSingle、Fixed3D、ThemedBorder)
  • 为负值使用单独的颜色(NegativeForeColor)
  • 启用键盘方向键来更改数值
  • 支持通过键盘输入较大的数值
  • 配置文本和按钮对齐方式(左对齐、右对齐、居中对齐)
  • 创建主题一致的专业数字输入表单
  • 使用外观增强的替代控件取代标准 NumericUpDown

当数字输入控件需要视觉主题和高级格式设置时,NumericUpDownExt 是理想选择。

组件概览

NumericUpDownExt 是一种高级数字增减控件,在标准 WinForms NumericUpDown 的基础上扩展了 XP 主题和增强功能。它提供:

  • XP 主题支持:改进标准 .NET 控件缺少的外观和观感
  • 数值约束:Minimum、Maximum、Increment 属性
  • 显示选项:小数位数、千位分隔符、十六进制格式
  • 外观自定义:颜色、边框、对齐方式选项
  • 主题边框:FixedSingle、Fixed3D、None、ThemedBorder
  • 键盘支持:方向键、较大数值输入
  • 负值样式:为负数单独设置前景色
  • 布局控制:MinSize、MaxSize 属性

与标准 NumericUpDown 的主要区别: NumericUpDownExt 增加了 XP 主题、十六进制显示、主题边框和负值颜色样式。

文档和导航指南

入门和基本设置

📄 阅读: references/getting-started.md

当用户需要以下内容时,请阅读此参考文档:

  • 程序集依赖项和 NuGet 包安装
  • 通过设计器或代码创建 NumericUpDownExt
  • 基本属性和配置
  • 将 NumericUpDownExt 添加到窗体
  • 了解控件层次结构
  • 完整的最简可运行示例
数值设置和约束

📄 阅读: references/value-settings.md

当用户需要以下内容时,请阅读此参考文档:

  • 用于设置当前数值的 Value 属性
  • Minimum 和 Maximum 约束
  • 用于设置步进值的 Increment 属性
  • 十六进制显示模式
  • 用于表示十六进制值的 HexValue 属性
  • UpButton/DownButton 方法
  • 数值约束示例和模式
显示设置

📄 阅读: references/display-settings.md

当用户需要以下内容时,请阅读此参考文档:

  • 用于显示小数的 DecimalPlaces 属性
  • 用于大数值的 ThousandsSeparator
  • 显示格式选项
  • 货币和百分比格式设置
  • 不同数字格式的示例
外观自定义

📄 阅读: references/appearance-customization.md

当用户需要以下内容时,请阅读此参考文档:

  • 背景色和前景色
  • 用于设置负值颜色的 NegativeForeColor
  • 边框样式(FixedSingle、Fixed3D、None)
  • ThemedBorder 属性
  • 文本和按钮对齐方式
  • 布局设置(MaxSize、MinSize)
  • 完整的自定义样式示例
行为设置

📄 阅读: references/behavior-settings.md

当用户需要以下内容时,请阅读此参考文档:

  • 用于键盘输入的 InterceptArrowKeys 属性
  • ReadOnly 模式配置
  • 用于输入较大数值的按键支持
  • 行为配置选项
  • 用户交互模式
主题和视觉样式

📄 阅读: references/themes-and-styles.md

在用户需要以下内容时阅读此参考文档:

  • 视觉样式概述
  • 为 NumericUpDownExt 应用主题
  • XP 主题的外观和感觉
  • 将主题集成到应用程序中
  • 样式最佳实践

快速入门示例

以下是一个创建带有约束的 NumericUpDownExt 控件的最简示例:

using Syncfusion.Windows.Forms.Tools;
using System;
using System.Drawing;
using System.Windows.Forms;

public class NumericUpDownExample : Form
{
    private NumericUpDownExt numericUpDownExt1;
    
    public NumericUpDownExample()
    {
        // Create NumericUpDownExt
        numericUpDownExt1 = new NumericUpDownExt();
        numericUpDownExt1.Location = new Point(70, 29);
        numericUpDownExt1.Size = new Size(120, 20);
        
        // Set value constraints
        numericUpDownExt1.Minimum = 0;
        numericUpDownExt1.Maximum = 100;
        numericUpDownExt1.Value = 50;
        numericUpDownExt1.Increment = 5;
        
        // Set display formatting
        numericUpDownExt1.DecimalPlaces = 2;
        numericUpDownExt1.ThousandsSeparator = true;
        
        // Add to form
        this.Controls.Add(numericUpDownExt1);
        
        this.Text = "NumericUpDownExt Example";
        this.Size = new Size(300, 150);
    }
}

结果: 一个数值微调控件,取值范围为 0-100,每次递增 5,显示 2 位小数并使用千位分隔符。

常见模式

货币输入控件

模式: 创建用于货币输入且格式正确的数值控件。

// Currency input with constraints
NumericUpDownExt currencyInput = new NumericUpDownExt();
currencyInput.Location = new Point(100, 20);
currencyInput.Size = new Size(120, 20);

// Value settings
currencyInput.Minimum = 0;
currencyInput.Maximum = 999999.99m;
currencyInput.Increment = 0.01m;
currencyInput.Value = 0;

// Display formatting
currencyInput.DecimalPlaces = 2;
currencyInput.ThousandsSeparator = true;

// Add label for context
Label label = new Label();
label.Text = "Price: $";
label.Location = new Point(50, 23);
label.AutoSize = true;

this.Controls.Add(label);
this.Controls.Add(currencyInput);

适用场景: 用户需要支持分精度和大数格式的货币输入。

百分比选择器

模式: 用于百分比值(0-100)的数值控件。

NumericUpDownExt percentInput = new NumericUpDownExt();
percentInput.Location = new Point(100, 50);
percentInput.Size = new Size(100, 20);

// Percentage constraints
percentInput.Minimum = 0;
percentInput.Maximum = 100;
percentInput.Increment = 5;
percentInput.Value = 50;
percentInput.DecimalPlaces = 1;

// Add % suffix label
Label percentLabel = new Label();
percentLabel.Text = "%";
percentLabel.Location = new Point(205, 53);
percentLabel.AutoSize = true;

this.Controls.Add(percentInput);
this.Controls.Add(percentLabel);

适用场景: 用户需要输入范围受限的百分比。

十六进制颜色值输入

模式: 以十六进制格式显示和编辑数值。

NumericUpDownExt hexInput = new NumericUpDownExt();
hexInput.Location = new Point(100, 80);
hexInput.Size = new Size(120, 20);

// Hex mode for color values
hexInput.Hexadecimal = true;
hexInput.Minimum = 0;
hexInput.Maximum = 0xFFFFFF; // Max RGB value
hexInput.Increment = 0x10;
hexInput.Value = 0xFF5733; // Example color

// Add label
Label hexLabel = new Label();
hexLabel.Text = "Color (Hex):";
hexLabel.Location = new Point(20, 83);
hexLabel.AutoSize = true;

this.Controls.Add(hexLabel);
this.Controls.Add(hexInput);

适用场景: 用户需要输入十六进制颜色值、内存地址或字节值。

关键属性

值属性
属性类型说明使用时机
Valuedecimal当前数值获取/设置控件值
Minimumdecimal允许的最小值设置下限约束
Maximumdecimal允许的最大值设置上限约束
Incrementdecimal数值变化步长控制递增幅度
Hexadecimalbool以十六进制格式显示输入十六进制值
HexValuestring十六进制表示(只读)获取十六进制字符串
显示属性
属性类型说明使用时机
DecimalPlacesint小数位数设置小数精度
ThousandsSeparatorbool显示千位分隔符格式化大数
外观属性
属性类型说明使用时机
BackColorColor背景颜色自定义背景
ForeColorColor文本颜色自定义文本颜色
NegativeForeColorColor负值颜色突出显示负数
BorderStyleBorderStyle边框样式(FixedSingle/Fixed3D/None)设置控件外观
ThemedBorderbool使用主题边框采用现代外观
行为属性
属性类型说明使用时机
InterceptArrowKeysbool允许使用方向键输入通过键盘更改数值
ReadOnlybool禁止编辑数值仅显示模式
UpDownAlignLeftRightAlignment按钮位置(左/右)自定义布局
TextAlignHorizontalAlignment文本对齐方式左/右/居中对齐

常见用例

设置表单

用于应用程序设置的数值输入:

  • 字体大小选择器(8-72 pt)
  • 超时值(秒/分钟)
  • 缓冲区大小设置
  • 线程数配置
财务应用程序

货币和百分比输入:

  • 支持小数精度的价格输入
  • 折扣百分比选择器
  • 税率输入
  • 账户余额显示
科学/工程工具

高精度数值输入:

  • 带小数位的测量值
  • 校准参数
  • 带约束的计算输入
  • 单位转换界面
颜色选择器

十六进制颜色值输入:

  • RGB 分量值(0-255)
  • 十六进制颜色代码(#000000-#FFFFFF)
  • Alpha 通道值
  • 调色板编辑器

实现检查清单

实现 NumericUpDownExt 时,请确保:

  • ✅ 已引用所需程序集(Syncfusion.Tools.Windows.dll 等)
  • ✅ 已包含命名空间(Syncfusion.Windows.Forms.Tools)
  • ✅ 已创建并配置 NumericUpDownExt 实例
  • ✅ 已设置数值约束(Minimum、Maximum、Increment)
  • ✅ 已配置显示格式(DecimalPlaces、ThousandsSeparator)
  • ✅ 已指定用于布局的位置和大小
  • ✅ 已通过 Value 属性设置默认值
  • ✅ 如有需要,已为 ValueChanged 添加事件处理程序
  • ✅ 已针对业务规则实现验证
  • ✅ 已使用边界值(最小值、最大值、零、负数)进行测试

故障排除速查

问题: 按箭头键时数值没有变化

  • 设置 InterceptArrowKeys = true
  • 确保控件已获得焦点
  • 检查 ReadOnly 是否为 false

问题: 未显示小数位

  • 将 DecimalPlaces 属性设为所需位数
  • 确保 Value 包含小数部分
  • 检查 Value 是否仅为整数

问题: 未显示千位分隔符

  • 设置 ThousandsSeparator = true
  • 确保数值 >= 1000
  • 确认区域性设置支持分隔符

问题: 无法设置超出范围的数值

  • 检查 Minimum 和 Maximum 属性
  • 确保所需数值处于约束范围内
  • 较大数值请使用 decimal 类型

问题: 十六进制显示无效

  • 设置 Hexadecimal = true
  • 确保数值处于有效的十六进制范围内
  • 使用 HexValue 属性读取十六进制字符串

问题: 负数未以不同颜色显示

  • 显式设置 NegativeForeColor 属性
  • 确保 Minimum 允许负数
  • 检查该数值是否确实为负数

总结

NumericUpDownExt 提供了增强的数值输入功能,包括:

  • XP 主题:现代化的外观和风格
  • 数值约束:控制最小值、最大值和增量
  • 显示格式:小数位、千位分隔符、十六进制
  • 视觉自定义:颜色、边框、对齐方式和主题外观

在 WinForms 应用程序中创建专业的数值输入控件时,如果视觉主题、高级格式设置和精确的数值控制至关重要,请使用 NumericUpDownExt。

评论

支持 Markdown