Surveillance de l'entrée d'un TextBox
Bonjour à tous
J'ai une TextBox qui est en entrée ou en sortie.
Dans cette TextBox je veux que l'opérateur saisie une valeur numérique comprise entre 0 et 100.
Est il possible de définir simplement les minimum et maximum et surtout que c'est bien une valeur munérique qui a été saisie (non pas du texte).
Tout cela pour éviter de faire des contrôles (if ... alors)
merci
Convertion du controle de Hunteshiva vers du C#
Bonjour Hunteshiva,
Un grand merci pour ta solution qui fonctionne super bien en vb.net, je suis novice dans le dev et je venais de commencé un projet en vb qui utilisé ta solution lorsque mon patron ma proposé une formation en C#. J'ai décidé de refaire mon projet en c# mais je rencontre des difficulté à convertir ta solution de contrôle d'une textbox pour qu'elle n'accepte pas de texte mais uniquement une valeur numérique entre 1 et 365.
Ma conversion semble fonctionner:
Si la valeur saisi est du texte => infobulle ok
Si la valeur numérique est 0 => infobulle ok
Mais lors que je saisi une valeur numerique supérieur à 0, il me renvoie une erreur "Une exception non gérée du type 'System.ArgumentNullException' s'est produite dans System.Windows.Forms.dll" .
Voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| private void textBox_Retention_TextChanged(object sender, EventArgs e)
{
//Activation des messages infobulle dans la textebox
//===================================================
var infobulle = new ToolTip();
infobulle.IsBalloon = true;
infobulle.OwnerDraw = true;
infobulle.ForeColor = Color.Red;
infobulle.ToolTipTitle = "Erreur de Saisie";
infobulle.ToolTipIcon = ToolTipIcon.Error;
int texte_value_min = 1;
int texte_value_max = 365;
try
{
// Si la textBox est vide on ne vérifie rien
//===========================================
if (string.IsNullOrEmpty(textBox_Retention.Text))
{ return; }
//Récupération et conversion de la largeur dans une variable
//==========================================================
int texte_value;
texte_value = Convert.ToInt32(textBox_Retention.Text);
//Vérification de la valeur minimum et maximum entrée dans la textBox, Si la valeur saisie n'est pas correcte
//on affiche un Message d'erreur et on vide la textBox
//============================================================================================================
if (texte_value > texte_value_max)
{ infobulle.Show("Le Maximum de jours autorisé est de 365/J", textBox_Retention, 0, -75, 3000); }
else
{ textBox_Retention.Text = null; }
if (texte_value < texte_value_min)
{ infobulle.Show("Votre Saisi 0 Jour est Interdite, Veuillez Séléctionner une Valeur de 1 à 465/J", textBox_Retention, 0, -75, 3000); }
else
{ textBox_Retention = null;
return;
}
}
//Message d'erreur
catch
{ infobulle.Show("Veuillez Saisir Uniquement une Valeur Numérique pour la Période de Rétention", textBox_Retention, 0, -75, 3000);
textBox_Retention.Text = null;
// return;
}
} |
Merci d'avance de votre aide.
Cordialement.