如果键盘按下的键是字符或控制键则把e.Handled置为假,说明事件未被处理(等待处理);否则把e.Handled置为真,说明事件已经处理(不用再处理)。我试了一下,这段代码好用~~

解决方案 »

  1.   

    char.IsDigit(c)是否为数字,
    char.IsControl(c)是否为控制键(如Backspace)。
    除了数字与控制键,其它的都无郊
      

  2.   

    private void TEXT_PURNO_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    char c = e.KeyChar;
    e.Handled = !(char.IsDigit(c) || char.IsControl(c));
    }
    // 
    e.Handled = !(char.IsDigit(c) || char.IsControl(c));
    // 如果是字符或控制符的话,e.Handled = false;
    // 请看:
    如果处理过事件,则为 true;否则为 false。备注
    如果未处理事件,则会将它发送到操作系统进行默认处理。将 Handled 设置为 true 以取消 KeyPress 事件。
    /******** 将 Handled 设置为 true 以取消 KeyPress 事件。 *********/