使用C#winform應用程序的NumericUpDown控件。C#,winform - 在KeyPress上未驗證NumericUpDown最大限制?
將Maximun的值設置爲99.但是,當我鍵入99以上的值時,例如:555,它允許我在值555中鍵入(key_press事件),並且只有當我離開控制時它纔會變回最大值(99) 。我需要的是,用戶不應該允許鍵入大於99的值。而且,默認行爲「上下行動」值不應受此影響。我該怎麼做呢?
使用C#winform應用程序的NumericUpDown控件。C#,winform - 在KeyPress上未驗證NumericUpDown最大限制?
將Maximun的值設置爲99.但是,當我鍵入99以上的值時,例如:555,它允許我在值555中鍵入(key_press事件),並且只有當我離開控制時它纔會變回最大值(99) 。我需要的是,用戶不應該允許鍵入大於99的值。而且,默認行爲「上下行動」值不應受此影響。我該怎麼做呢?
只是快速的想法:
public class StrictNumericUpDown : NumericUpDown
{
protected override void OnTextBoxTextChanged(object source, EventArgs e)
{
base.OnTextBoxTextChanged(source, e);
if (Value > Maximum)
{
Value = Maximum;
}
}
}
只是一個想法,但它不會更乾淨,只調用base.OnTextBoxTextChanged(...)如果(值<最大)? – LordWilmore
您可以使用KeyDown事件並在觸發時驗證值。
嘗試過,但它允許鍵入值高達3位數,其中IC超過99 ..., – Dhana
對我來說,'KeyDown'不能驗證&否定行動;然而,'KeyPress'是。 –
使用
KEYUP
事件。
或者
((TextBox)numericUpDown1.Controls[1]).MaxLength = 2;
//正如漢斯提及。
((TextBox)numericUpDown1.Controls [1])。MaxLength = 2; –
@ hans Passant:你是偉大的人!它工作正常..., – Dhana
@HansPassant:毫無疑問,這是最好的答案。你爲什麼不把它作爲答案發布? – CharithJ