Bonjour,
Je voudrais utiliser la fonction datetime.tryparse()
En fait, un utilisateur rentre une date dans une textbox. Si la date n'est pas valide, Avertissement.
Merci d'avance pour votre aide.
Version imprimable
Bonjour,
Je voudrais utiliser la fonction datetime.tryparse()
En fait, un utilisateur rentre une date dans une textbox. Si la date n'est pas valide, Avertissement.
Merci d'avance pour votre aide.
Si tu veux préciser le format, il faut utiliser DateTime.TryParseExactCode:
1
2
3
4
5 DateTime date; if (!DateTime.TryParse(textBoxDate.Text, out date)) { MessageBox.Show("La date est incorrecte !"); }
Je ne comprends pas très bien cette fonction DateTime. Si j'utilise votre méthode, dés que je rentre un chiffre, il met directement que la date n'est pas valide.Code:
1
2
3
4
5
6
7
8
9
10
11
12 private void textBox2_TextChanged(object sender, EventArgs e) { DateTime date; if (!DateTime.TryParse(textBox2.Text, out date)) { textBox3.Text = textBox2.Text; } else { MessageBox.Show("La date est incorrecte !"); }
Merci.
C'est parce que tu vérifies trop tôt... si tu vérifies la date dès que l'utilisateur commence à saisir quelque chose, au début la date ne sera forcément pas valide (puisqu'elle est incomplète). Il ne faut donc pas gérer l'évènement TextChanged, mais plutôt l'évènement Validating, qui est fait pour vérifier la validité de la saisie (il se produit quand la TextBox perd le focus)
Sinon, pour saisir une date, il y a un meilleur moyen : le contrôle DateTimePicker, qui est fait pour saisir des dates...
Un grand merci...Ça avance.
Après les deux premier chiffres, le slash se met correctement mais alors le curseur se positionne tout à gauche. Comment le laisser à droite du slash.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 private void textBox2_Validating(object sender, CancelEventArgs e) { DateTime date; if (!DateTime.TryParse(textBox2.Text, out date)) { MessageBox.Show("La date est incorrecte !"); } else { textBox3.Text = textBox2.Text; } } private void textBox2_TextChanged(object sender, EventArgs e) { if (textBox2.Text.Length == 2) { textBox2.Text += "/"; } }
Merci d'avance.:ccool:
essaie ça :
Code:textBox2.SelectionStart = textBox2.Text.Length;