在 C# 中完成我的第一个应用程序的新手工作。这是我想要做的......
用户将在文本框中输入“ID”,所有数字。我一直在试图弄清楚如何在 ID 中捕获前导零,例如:
ID 0827 可以接受 5031 不是我们想要的
基本上,零不能是系列中的前导数。我想,也许这可以通过索引被困住,但我很难过。有什么想法吗????
- 困惑的捕手
在 C# 中完成我的第一个应用程序的新手工作。这是我想要做的......
用户将在文本框中输入“ID”,所有数字。我一直在试图弄清楚如何在 ID 中捕获前导零,例如:
ID 0827 可以接受 5031 不是我们想要的
基本上,零不能是系列中的前导数。我想,也许这可以通过索引被困住,但我很难过。有什么想法吗????
- 困惑的捕手
怎么样……可能需要调整一下。
protected override void OnKeyPress(KeyPressEventArgs e)
{
if( this.SelectionStart == 0 && e.KeyChar == (char)'0')
{
e.Handled = true;
return;
}
}
如果您只想在框中输入数字,只需使用 NumericUpDown 而不是 TextBox。在您的情况下,您的 ID 似乎总是四位数。因此,将最小值设置为 1000,将最大值设置为 9999(或更大或 Decimal.MaxValue)。
您是否希望在他们键入时阻止 0,或者在他们离开该字段后执行验证?监视按键的解决方案的问题是,如果从剪贴板粘贴无效值,它们不会监视内容。
查看该控件中的MaskedTextBox和OnValidating,看看是否可以为您解决问题。
protected override void OnKeyDown( object sender, KeyEventArgs e )
{
e.Handled = ( ( this.SelectionStart == 0 ) && ( e.KeyCode == Keys.D0) )
}