WPF Textbox et Bouton
Résolu/Fermé
Theolit
Messages postés
39
Date d'inscription
mercredi 18 mars 2020
Statut
Membre
Dernière intervention
20 avril 2021
-
Modifié le 28 avril 2020 à 14:36
Theolit Messages postés 39 Date d'inscription mercredi 18 mars 2020 Statut Membre Dernière intervention 20 avril 2021 - 29 avril 2020 à 10:38
Theolit Messages postés 39 Date d'inscription mercredi 18 mars 2020 Statut Membre Dernière intervention 20 avril 2021 - 29 avril 2020 à 10:38
A voir également:
- WPF Textbox et Bouton
- Réinitialiser chromecast sans bouton - Guide
- Bouton reinitialisation pc - Guide
- Comment débloquer un bouton enfoncé - Forum Samsung
- Bouton shift pc ✓ - Forum Windows
- Hard reset samsung sans bouton home - Guide
4 réponses
Utilisateur anonyme
28 avril 2020 à 15:04
28 avril 2020 à 15:04
Bonjour
Est ce que le nombre de textbox est fixe, ou sont-elles ajoutées dynamiquement?
Est ce que le nombre de textbox est fixe, ou sont-elles ajoutées dynamiquement?
Utilisateur anonyme
28 avril 2020 à 19:40
28 avril 2020 à 19:40
Ok
alors on va modifié le code que je t'ai donné hier.
Cependant, ce que je vais te montrer là va à l'encontre de la liaison de données (Binding) qui est l'un des gros points forts de WPF.
alors on va modifié le code que je t'ai donné hier.
Cependant, ce que je vais te montrer là va à l'encontre de la liaison de données (Binding) qui est l'un des gros points forts de WPF.
Utilisateur anonyme
28 avril 2020 à 20:03
28 avril 2020 à 20:03
On ne peut pas utiliser la propriété Focused, car en cliquant sur le bouton, c'est lui qui a le focus.
Je me sers donc de l'index, que je mémorise
Je me sers donc de l'index, que je mémorise
List<TextBox> textBoxes;//la liste devient "globale" à la classe pour ne pas refaire n fois la même requête, et servir aux 2 interactions int indexTextBox;//idem pour l'index public MainWindow() { InitializeComponent(); textBoxes = leGrid.Children.OfType<TextBox>().OrderBy(t => Convert.ToInt32(t.Tag)).ToList(); } private void TextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if(e.Key == System.Windows.Input.Key.Enter) { SetIndex(sender); if (++indexTextBox == textBoxes.Count)//si een ajoutant 1, on atteint un index trop grand, on remet à zéro indexTextBox = 0; textBoxes[indexTextBox].Focus(); } } private void SetIndex(object sender) { TextBox textBox = sender as TextBox; //on caste sender en textbox if (textBox == null)//si en fait sender n'était pas une textbox on sort return; indexTextBox = textBoxes.IndexOf(textBox);//index du textbox en cours dans la liste } private void TextBox_GotFocus(object sender, RoutedEventArgs e) { SetIndex(sender);//au cas ou le focus soit parvenu autrement (souris ou Tab par exemple) } private void ButTest_Click(object sender, RoutedEventArgs e) { textBoxes[indexTextBox].Text = "Coucou"; }
<Grid x:Name="leGrid"> <TextBox HorizontalAlignment="Left" Height="23" Margin="445,69,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" KeyDown="TextBox_KeyDown" Tag="1" GotFocus="TextBox_GotFocus"/> <TextBox HorizontalAlignment="Left" Height="23" Margin="445,125,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" KeyDown="TextBox_KeyDown" Tag="3" GotFocus="TextBox_GotFocus"/> <TextBox HorizontalAlignment="Left" Height="23" Margin="445,153,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" KeyDown="TextBox_KeyDown" Tag="4" GotFocus="TextBox_GotFocus"/> <TextBox HorizontalAlignment="Left" Height="23" Margin="445,97,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" KeyDown="TextBox_KeyDown" Tag="2" GotFocus="TextBox_GotFocus"/> <Button Content="Test" HorizontalAlignment="Left" Margin="471,208,0,0" VerticalAlignment="Top" Width="75" Click="ButTest_Click"/>
Theolit
Messages postés
39
Date d'inscription
mercredi 18 mars 2020
Statut
Membre
Dernière intervention
20 avril 2021
29 avril 2020 à 09:46
29 avril 2020 à 09:46
Je viens d'essayer, ça fonctionne vraiment bien.
Cependant quand je clique sur le bouton "test" le curseur ne passe pas à la prochaine textbox.
Cependant quand je clique sur le bouton "test" le curseur ne passe pas à la prochaine textbox.
Utilisateur anonyme
29 avril 2020 à 10:00
29 avril 2020 à 10:00
Ha oui, alors après avoir écrit le text il faut que tu donnes le focus à la textbox
Theolit
Messages postés
39
Date d'inscription
mercredi 18 mars 2020
Statut
Membre
Dernière intervention
20 avril 2021
29 avril 2020 à 10:38
29 avril 2020 à 10:38
C'est bon, tout fonctionne ! Merci beaucoup
28 avril 2020 à 19:35