Bonjour,
Je voudrais savoir s'il est possible de déclencher l'évènement KeyDown d'un TextBox à partir d'un code ?
Merci de vos réponses ...
Bonjour,
Je voudrais savoir s'il est possible de déclencher l'évènement KeyDown d'un TextBox à partir d'un code ?
Merci de vos réponses ...
elle est bizarre ta question, Keydown comme tu dit est un evenement (relachement d'une touche du clavier),
donc la seule chose qui peut declencher Keydown d'un textbox c'est que l'utilisateur relache une touche du clavier qd le curseur est dans le textebox.
Enfin je pense ...
Je vois ce qu'il veut dire.
Avoir un code pour l'événement que l'on pourrait exécuter dans une autre fonction...
Ce qu'il est possible de faire c'est ceci:
Fonction de traitement
Evenement qui appelle ta fonction
Fonction qui appelle ta premiere fonction
Donc en gros sortir le code de traitement de ton événement
Didier Danse
Most Valuable Profesionnal SharePoint
Microsoft Certified Application Developer
Mes articles sur developpez.com
Mon site perso
Excusez moi d'avoir mit du temps à répondre ... pb avec Internet.
Donc c'est pas tout à fait ce que je veux faire Ditch. En fait, je voudrais que lorsque l'évènement se déclenche sur une zone de texte 1, je voudrais l'appliquer également sur la zone de texte 2. Je sais que l'on peut récupérer la touche appuyée mais le problème est de gérer les conséquences des touches spéciales ...
Si vous avez une idée ... merci
Justement. Tu sais que tu as deux TextBox. Quand tu fais un traitement sur un, tu en fais un autre (ou le meme) sur l'autre.
Exemple:
En tres gros. C'est tjs pas ca?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub Tb1_Evt Call Ev1 Call Ev2 End Sub Sub Tb2_Evt Call Ev1 Call Ev2 End Sub ' Evidemment pr faire ca, attends assez le clic à la mm méthode puisque ca fait EXACTEMENT la mm chose. De plus il est possible de récuperer l'origine si plusieurs controles sont associes à la mm méthode. Sub Ev1 ' Traitement sur ton Tb1 End Sub Sub Ev2 ' Traitement sur ton Tb2 End Sub
Didier Danse
Most Valuable Profesionnal SharePoint
Microsoft Certified Application Developer
Mes articles sur developpez.com
Mon site perso
Mais en fait, je ne fais aucun traitement dans mon évènement ... ou du moins le seul traitement effectué est celui du contrôle (modification du texte ou de la sélection selon la touche sur laquelle tu appuies).
Ce que je veux c'est que le changement appliqué sur une textBox lors de l'appui d'une touche s'effectue aussi sur une autre TextBox. Le texte des textBox peuvent être (je dirais meme sont) différents.
Par exemple : j'ai deux TextBox 1 et 2.
TextBox1 contient "Bonjour" et le début de la sélection est à la fin de la chaine.
TextBox2 contient "AuRevoir" et le début de la sélection est au début.
Supposons que TextBox1 a le Focus ... le fait d'appuyer sur 'E' ...
TextBox1 = 'Bonjoure' et j'aimerais que TextBox2 soit égal à 'eAuRevoir'.
Ca parait simple avec seulement le traitement des lettres mais le problème, c'est toutes les touches spéciales ...
Bon ce n'est pas tout à fait ce que tu veux mais ça devrait t'aider.
Je viens de finir cet exemple pour la future FAQ
toutes les touches tapées sur textBox1 sont repercutées sur le contenu de textBox2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // KeyPress Handler private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // On affiche tous les caractères imprimables if (!char.IsControl(e.KeyChar)) textBox2.Text = textBox1.Text.Substring(0, textBox1.SelectionStart) + e.KeyChar.ToString() + textBox1.Text.Substring(textBox1.SelectionStart + textBox1.SelectionLength); } // KeyDown Handler private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { // Gestion Touche Back if (e.KeyCode == Keys.Back && textBox1.Text.Length > 0) { if (textBox1.SelectionLength > 0) { // Suppression selection textBox2.Text = textBox1.Text.Substring(0, textBox1.SelectionStart) + textBox1.Text.Substring(textBox1.SelectionStart + textBox1.SelectionLength); } else if (textBox1.SelectionStart > 0) { // Supression caractère précédant le curseur if (textBox1.SelectionStart == textBox1.Text.Length) textBox2.Text = textBox1.Text.Substring(0, textBox1.Text.Length-1); else textBox2.Text = textBox1.Text.Substring(0, textBox1.SelectionStart-1) + textBox1.Text.Substring(textBox1.SelectionStart + textBox1.SelectionLength); } } // Touche Delete (suppr) else if (e.KeyCode == Keys.Delete && textBox1.Text.Length > 0) { // Le curseur est en fin de chaine if (textBox1.SelectionStart == textBox1.Text.Length) { // Supression dernier caratère par Shift+Del if (e.Shift) textBox2.Text = textBox1.Text.Substring(0, textBox1.Text.Length-1); } else { // On prend tout les caractères à gauche du curseur textBox2.Text = textBox1.Text.Substring(0, textBox1.SelectionStart); if (textBox1.SelectionLength != 0) // Suppression de la selection textBox2.AppendText(textBox1.Text.Substring(textBox1.SelectionStart + textBox1.SelectionLength)); else { // Si la touche control est enfoncée, tous les caractères // à droite du curseur seront supprimés. Sinon on en supprime // un seul if (!e.Control) textBox2.Text = textBox1.Text.Substring(0, textBox1.SelectionStart) + textBox1.Text.Substring(textBox1.SelectionStart+1); } } } // Coller (Ctrl+V) ou (Shift+insert). else if ((e.Shift && e.KeyCode == Keys.Insert) || (e.Control && e.KeyCode == Keys.V)) { // Données dans presse papier IDataObject cpdata = Clipboard.GetDataObject(); // Test si cpdata contient du texte if (cpdata != null && cpdata.GetDataPresent(string.Empty.GetType())) { string data = cpdata.GetData(string.Empty.GetType()).ToString(); bool print = false; // Gestion caractère non imprimables (comme les tabulations par exemple) for (int i=0; i<data.Length-1; i++) { if (char.IsControl(data, i) && print) { data = data.Substring(0, i); break; } else if (!char.IsControl(data, i) && !print) print = true; } textBox2.Text = textBox1.Text.Substring(0, textBox1.SelectionStart) + data + textBox1.Text.Substring(textBox1.SelectionStart + textBox1.SelectionLength); } } }
Merci pour ton code abelman.
Je pense aussi que je vais pouvoir avancer. Bien sur, si quelqu'un a une solution plus simple .... je suis toujours preneur.
comment ça ?
pas simple mon code ???
T'as mis trop de commentaires alors ca a allongé le codeEnvoyé par abelman
Didier Danse
Most Valuable Profesionnal SharePoint
Microsoft Certified Application Developer
Mes articles sur developpez.com
Mon site perso
J'ai pu réaliser ce que je voulais avec ton code. Merci encore ...
Tu trouves vraiment qu'il y a trop de commentaires Dictch ?Envoyé par Ditch
Partager