2009-02-20 6 views
1

J'utilise C# .Net. J'ai la zone de texte qui autorise seulement le signe de nombre, décimal et de pourcentage (%). J'ai le keycode pour tout le nombre et le nombre décimal, mais quel est le keycode du signe "%"?Quel est le code clé du signe%?

Comment puis-je vérifier l'événement keydown pour%?

Répondre

12

Quelque chose comme ceci:

private void yourControl_KeyDown(object sender, KeyEventArgs e) 
{ 
    if((e.KeyCode == Keys.D5) && e.Shift) 
    { 
     // User pressed '%' ... 
    } 
} 

ou

private void yourControl_KeyDown(object sender, KeyEventArgs e) 
{ 
    switch(e.KeyCode) 
    { 
     //... 
     case Keys.D5: 
      if(e.Shift) 
      { 
       // Handle '%' 
      } 
      else 
      { 
       // Handle '5' 
      } 
      break; 
     // ... 
    } 
} 

Vous voulez vérifier que la clé étant pressée est la clé 5, et qu'il a été modifié en appuyant sur la touche Maj enfoncée.

+0

Comment puis-je vérifier avec commutateur (e.KeyCode) { cas Keys.Add: - Je dois signe de pourcentage pour vérifier – Kartik

+0

pouvez-vous s'il vous plaît aidez-moi dans le cas de si je compare dans le cas de commutateur – Kartik

+0

et si le signe% n'est pas sur shift + 5? (par exemple la disposition du clavier français) – d0k

3

Le code ASCII pour "%" est 37, et en Unicode & # 37.

+0

et KeyEventArgs.KeyValue est 53 – abatishchev

0

Voici une zone de texte modèle limitant:

private void AmountPaidTextBox_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     switch ((byte)e.KeyChar) 
     { 
      case 48: 
      case 49: 
      case 50: 
      case 51: 
      case 52: 
      case 53: 
      case 54: 
      case 55: 
      case 56: 
      case 57: 
      case 58: 
      case 59: 
      case 46: 
      case 35: 

       //This is a valid character 
       e.Handled = false; 
       break; 
      default: 
       //This is an invalid character 
       e.Handled = true; 
       break; 

     } 
    } 
+0

L'original ne contenait pas le cas 35, car je n'autorise que les nombres et les nombres décimaux. –

+0

Oups, cela devrait être le cas 37, selon le tableau ASCII (http://www.unitechnical.info/Products/ASCII-Chart.jpg). Aie! –

Questions connexes