Bonjour tout le monde :
Je voudrai savoir comment faire pour limiter le nombre de caractères dans un textBox.
J'ai essayée bcp de methode mais j arrivée pas :roll:=(
Merci pour votre aide
Version imprimable
Bonjour tout le monde :
Je voudrai savoir comment faire pour limiter le nombre de caractères dans un textBox.
J'ai essayée bcp de methode mais j arrivée pas :roll:=(
Merci pour votre aide
Exemple :
Code:TextBox1.MaxLength = 10
Je pense pas que ca va marcher , car il faut peut etre convertir un char en entier
:koi:, quel char ?
La propriété 'MaxLength' permet de définir le nombre de caractère maximum de ta textbox, et c'est un entier...ou alors j'ai pas pigé ton problème.
jackasse aurait pu écrire : "Tout est dans le titre ... même la réponse" ^^
bn alors je t'explique ; je dois gerer une partie d'ajout de machine et enregistrer ts ca sur ma base de données , pour cela il faut passer par un petit programme creer sous c -sharp , ce dernier doit etre composé de 4 champ de saisie TextBox( Ip , Num , Nom , Emplacement)
donc voila , ce que je voudrai bien faire c'est limiter la saisie dans mon 1er textBox d'une facon que lorsqu 'un utilisateurs rentre une adress Ip sous la forme de 172.145.122.12 ( c une fausse adress) , un message box apparait ( votre adress Ip dois comporter 20 saisie max) j'esper que j'ai ete assez clair cette fois
:lol::lol:
Jackass, j'ai pigé. Donc là, tu as deux solutions...soit tu fais comme je te l'ai dit plus haut et l'utilisateur ne pourra taper plus de 20 caractère (il faut bien sur que tu mette la valeur de MaxLength à 20), soit tu teste la taille du texte saisit sur l'événement onTextChanged de ton textBox et tu fais un retour utilisateur si la taille dépasse 20 caractère...
J'espère avoir été clair.
Oui j'ai fai ca , et j'ai une err :Citation:
Impossible de convertir le type int en bool
Fais voir ton code stp.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.Common; namespace Projets_Machine_2011 { public partial class Ajt_machines : Form { //================================================================================================================================================================= DataSet ds = new DataSet(); // creation d'un data set permettant de s'agit d'un composant très générique permettant de représenter les données sous forme de table. // ================================================================================================================================================================ SqlConnection conn = new SqlConnection("Data source=T129-P7; Initial Catalog=gestion_projet_2011; Integrated Security = True"); // Creation d'une connexion a la base de donnéés //==========================================================================================// // conn.Open(); // // MessageBox.Show(conn.State.ToString()); // // conn.Close(); // //==========================================================================================// //=================================================================================================================================================================================================================================================================== SqlDataAdapter commande = new SqlDataAdapter(); // Représente un ensemble de commandes de données et une connexion de base de données qui sont utilisés pour remplir DataSet et mettre à jour une base de données SQL Server. Cette classe ne peut pas être héritée. //=================================================================================================================================================================================================================================================================== BindingSource BS = new BindingSource(); public Ajt_machines() { InitializeComponent(); } private void Form6_Load(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { commande.SelectCommand = new SqlCommand("select * from Machines", conn); ds.Clear(); commande.Fill(ds); dataGrid.DataSource = ds.Tables[0]; BS.DataSource = ds.Tables[0]; textBox1.DataBindings.Add(new Binding("text", BS, "IP")); textBox2.DataBindings.Add(new Binding("text", BS, "Num")); textBox3.DataBindings.Add(new Binding("text", BS, "Nom")); textBox4.DataBindings.Add(new Binding("text", BS, "Emplacement")); enregistrement(); } private void dataGrid_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void DatagridUpdate() { dataGrid.ClearSelection(); dataGrid.Rows[BS.Position].Selected = true; enregistrement(); } private void enregistrement() { Enregisrtrement.Text = " Enregistrement " + BS.Position + " sur " + (BS.Count - 1); } private void btn_ajt_Click(object sender, EventArgs e) { if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "") { MessageBox.Show("Vous devez remplir les champs IP , num et Emplacement pour valider le formulaire", "Saisie incomplète", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { try { int entier = int.Parse(textBox1.Text); } catch (FormatException ex) // format invalide { MessageBox.Show("L'adress Ip et le numero doivent etre sous la Forme d'entier pas de caractére ===> ex : Ip :192.168.1.0 || N° : 12!!!"); } }
bon voila mon code est ce que quelqu'un pourrait m'indiquer ou je dois mettre mon exception pour gerer la saisie dans le TexBox1
Ca fait plaisir de voir que ce que l'on dit est pris en compte...:roll:
Tu n'utilises le MaxLength nul part.
Bref, de toute façon si l'utilisateur rentre un truc du genre "127.0.0.1" (ce qui me semble être ton désir d'après ton message d'erreur), le int.Parse ne marchera jamais puisque c'est une chaine de caractère et doit être interprété comme telle.
Si tu veux tester la validité de l'adresse IP, il faudra utiliser des Regex.
Ben non je l'ai supprimé parce que ca marche pas c'est tout
ok merci en tout cas merci pour l'aide :D
Si ça peut t'aider, pour la vérification de l'IP :
Suivi de la vérification du numéro et l'affichage de l'erreur :Code:
1
2
3
4
5
6
7
8
9
10
11
12 string message = ""; string ip = textBox1.Text; if (!Regex.IsMatch(ip, "^\\d{1,3}[.]\\d{1,3}[.]\\d{1,3}[.]\\d{1,3}$") || ip.Split(new char[] { '.' }) .Select(s => int.Parse(s)) .Where(i => i > 255 || i == 0) .Count() > 0 ) { message += "\n- Format de l'ip incorrect."; }
Code:
1
2
3
4
5
6
7
8
9
10 int num; if (int.TryParse(textBox2.Text, out num)) { message += "\n- Format du numéro incorrect."; } if (message.Length > 0) { MessageBox.Show("Erreur :" + message); }
Pour valider une IP, il n'y a pas moyen de faire plus simple avec un IPAddress.TryParse ?
J'ai peut-être le tord de trop faire confiance à .Net :aie:
Concernant le vif du sujet, il existe une propriété MaxLength sur la classe TextBox :ccool:
Merci beaucoup DarkHerumor !!! Je ne connaissais pas cette classe ! Effectivement cela simplifie énormément le code :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 string message = ""; IPAddress ip; int num; if (IPAddress.TryParse(textBox1.Text, out ip)) { message += "\n- Format de l'ip incorrect."; } if (int.TryParse(textBox2.Text, out num)) { message += "\n- Format du numéro incorrect."; } if (message.Length > 0) { MessageBox.Show("Erreur :" + message); }
L'intérêt c'est qu'en plus ça gère les IPv6 :)
Bonjour tout le monde
Gat est ce que tu peux m'expliquée a quoi sa sert la ligne
Code:if (!Regex.IsMatch(ip, "^\\d{1,3}[.]\\d{1,3}[.]\\d{1,3}[.]\\d{1,3}$")
C'est bon merci tout le monde je pense que j'ai résolue mon problème