KeyDown / KeyPress和索引

时间:2009-07-06 23:23:24

标签: c# validation keypress keydown

Compelete noob在C#中使用我的第一个应用程序。这是我想要做的......

用户将在文本框中输入“ID”,所有数字。我一直试图找出如何在ID中捕获前导零,例如:

5031可以接受身份证 0827不是我们想要的

基本上,零不能是系列中的前导数字。我想,perahps这可能会被索引困住,但我很难过。有什么想法????

-Confused Trapper

4 个答案:

答案 0 :(得分:1)

像...这样的东西可能需要调整它。

protected override void OnKeyPress(KeyPressEventArgs e)
{
    if( this.SelectionStart == 0 && e.KeyChar == (char)'0')
   {
        e.Handled = true;
        return;
    }
 }

答案 1 :(得分:0)

protected override void OnKeyDown( object sender, KeyEventArgs e )
{
    e.Handled = ( ( this.SelectionStart == 0 ) && ( e.KeyCode == Keys.D0) )
}

答案 2 :(得分:0)

您是否希望在键入时阻止0,或者在离开现场后执行验证?观看按键的解决方案的问题是,如果从剪贴板粘贴了无效值,它们不会监视内容。

查看该控件中的MaskedTextBoxOnValidating,看看是否能解决您的问题。

答案 3 :(得分:0)

如果您想在框中输入数字,只需使用NumericUpDown而不是TextBox。在您的情况下,您的ID似乎总是四位数。因此,将最小值设置为1000,将最大值设置为9999(或更大,或者设置为Decimal.MaxValue)。