【发布时间】:2013-12-12 18:34:02
【问题描述】:
我在 WinForms 中有一个应用程序,其中有许多控件。这些控件代表应用程序的设置,用户可以通过单击按钮来保存这些设置。
我正在尝试解决 NumericUpDown(我将其称为 Num)控件的问题:假设 Num 具有以下属性:
最少:10 最大:60 步骤:1
如果用户想要更改值,有两种方法可以做到这一点:单击箭头(Num 的右侧)或手动将值直接输入到 Num。第一种方式还可以,但大多数用户都在使用第二种方式,并且存在一些问题。
如果用户在区间外键入某个值,例如 1,则可以,因为他可以继续键入 5,因此最终值为 51,这在区间内。但是如果他在值 1 之后停止输入,这意味着他在区间 (1) 之外输入了值。如果他点击 Num 之外的某个地方,值(超出区间)会自动更改为最接近的允许值(如果为 1,则值将更改为 10)。
但他可能不会注意到这个自动更改,所以我想以某种方式处理它并通知他他在那里放置了无效值。但是这种情况不是由 Num 的任何事件处理的(没有办法找出他放在那里的这个无效值 - 如果我尝试在 ValueChanged 事件中读取值,它会读取自动更改的值,而不是无效值)。
我知道我可以添加TextChanged 事件,但是有一个问题,如果他输入了一些无效值(5),它可以更改为有效值(通过添加 1 得到 15)。
您对如何解决此问题有任何想法吗?我知道这很愚蠢,但这不取决于我,我必须这样做,我不知道该怎么做。
【问题讨论】:
标签: vb.net winforms event-handling numericupdown