VB.NET WinForm 如何实现支持非规整值跳转的多档位步进按钮
数值步进调整按钮实现问题梳理
基础步进规则
各档位按钮的基础步进逻辑如下:
- 带单加号(
+)、单减号(-)标识的按钮:文本框内数值以0.1为步长做增减调整 - 带双加号(
++)、双减号(--)标识的按钮:以1.0为步长调整数值 - 带三加号(
+++)、三减号(---)标识的按钮:以9.0为步长调整数值
特殊跳转规则
当文本框内存在无法匹配对应按钮步进序列的非规整数值时,点击按钮需直接跳转至该按钮步进序列可生成的相邻目标值
对应场景示例:
- 点击
+按钮时,非规整值1007.99将跳转至1008 - 点击
++按钮时,非规整值1007.99将跳转至1009 - 点击
+++按钮时,非规整值1007.99将跳转至1017 - 非规整值1008.40点击
++按钮时跳转至1009,点击--按钮时跳转至1008 - 所有标注减号的按钮遵循相同的跳转逻辑
现存实现问题
当前开发遇到的异常及不适配方案:
- 已尝试基于
de-DE文化的数值解析逻辑编写按钮点击事件代码,运行存在明显bug:无论点击多少次按钮,初始值1007.99始终徘徊在1007.9至1008.1区间,无法正确实现目标跳转 - 现有方案中将数值四舍五入取整后再叠加步进量的处理方式,不适配单档位加减的场景
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

