2013-06-28 1 views
1

J'ai un NumericUpDown et j'ai besoin quand le changement de valeur (et non LostFocus) font un nouveau calculcomment valider NumericUpDown lorsque le changement de valeur (et non perdu le focus)

si je mets mon code dans l'événement ValueChanged ce travail lorsque mise au point est perdu

si je mets mon code dans KeyPress alors si le numéro est pas entrer par le clavier (par exemple copier un numéro et collez-le), il ne fonctionne pas

alors quel événement dois-je utiliser? Si c'est une pression sur une touche, il faut concaténer la valeur numérique plus la touche enfoncée convertir tout cela en chaîne et la convertir en décimale, et faire le calcul, mais cela ne fonctionne pas si la touche n'est pas un nombre (exemple backspace

+0

Votre message est un peu déroutant. Pouvez-vous s'il vous plaît poster votre code? – Brian

+0

Oui, s'il vous plaît poster un morceau de code isolé, idéalement quelque chose que nous pouvons facilement reproduire D: –

Répondre

3

Vous pouvez utiliser l'événement KeyUp pour vérifier l'édition directe et coller des opérations avec CTRL + V.

Ensuite, vous pouvez écouter l'événement MouseUp pour vérifier les opérations de collage avec le bouton droit de la souris (menu contextuel).

Dans cet exemple de code un MessageBox est affichée si l'utilisateur entre un nombre supérieur à 9:

private void numericUpDown1_KeyUp(object sender, KeyEventArgs e) 
{ 
    if (numericUpDown1.Value >= 10){ 
     numericUpDown1.Value = 0; 
     MessageBox.Show("number must be less than 10!"); 
    } 
} 

private void numericUpDown1_MouseUp(object sender, MouseEventArgs e) 
{ 
    if (e.Button == System.Windows.Forms.MouseButtons.Right) { 
     if (numericUpDown1.Value >= 10){ 
      numericUpDown1.Value = 0; 
      MessageBox.Show("number must be less than 10!"); 
     } 
    } 
} 
Questions connexes