Reseté plusieurs textbox

TrnkaJR Messages postés 1 Date d'inscription dimanche 29 octobre 2017 Statut Membre Dernière intervention 29 octobre 2017 - Modifié le 29 oct. 2017 à 16:50
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 29 oct. 2017 à 18:44
Bonjour,
(Je suis débutant)
Je cherche un moyen de reseté plusieurs textbox a la fois
Un bouton qui reset les textbox.text de 3 a 26 et un autre qui reset toute les textbox.text de la page.
Comment sélectionné plusieurs textbox a la fois ?
merci

2 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
29 oct. 2017 à 18:09
Bonjour TrnkaJR,

Un petit exemple:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        For Each c As Control In Me.Controls

            If c.GetType Is GetType(TextBox) Then
                c.Text = "ceci est la TextBox nommée " & c.Name
                MessageBox.Show(c.Name & Environment.NewLine & c.Text)

                Select Case c.Name
                    Case "TextBox" & 2 To "TextBox" & 4
                        c.Text = Nothing
                End Select
                MessageBox.Show(c.Name & Environment.NewLine & c.Text)
            End If
        Next

        MessageBox.Show("Reset des textboxes")

        For Each c As Control In Me.Controls
            If c.GetType Is GetType(TextBox) Then
                c.Text = Nothing
            End If
        Next

    End Sub
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
Modifié le 29 oct. 2017 à 18:46
Bonjour
le code de JMO (salut) répond à ton besoin.

Cependant, appeler ces textbox avec le nom par défait est une mauvaise pratique.
En effet, quand tu auras un bug à corriger dans 1 ans ou plus te souviendras tu à quoi sert textbox21 et textbox32?
Il est conseillé d'appeler chaque contrôle avec un nom décrivant le type de contrôle et son utilité.
Par exemple, pour le prénom d'une personne, quelques possibilités permis tant d'autres:
  • tbxPrenom (tbx pour Texbox)
  • prenomTbx
  • textBoxPrenom (ça fait un peu long)
  • prenomTextBox
  • tbx_Prenom
  • prenom_Tbx
  • etc...


Evidement si tu fais ça, le code de JMO ne marchera plus.
Là tu as plusieurs options.

Tu peux mettre un certains nombres de textbox dans un groupBox, au lieu de chercher les contrôles dans toutes le formulaire, et bien tu regardes ceux dans le groupBox
        For Each c As Control In grpAReseter

            If c.GetType Is GetType(TextBox) Then


Si tes textbox ne peuvent pas être mise dans un groupBox, parce que par exemple, il y en a au milieu que tu ne dois pas reseter, tu peux te servir de la propriété Tag
        For Each c As Control In Me.Controls

            If c.GetType Is GetType(TextBox) And c.Tag = "A reseter" Then

Tu peux aussi mettre un élément commun dans les noms
        For Each c As Control In Me.Controls

            If c.GetType Is GetType(TextBox) And c.Name.Contains("Client") Then


Y'a un certain nombre d'options différentes.

Pour gagner un peu de temps d'exécution, on peut remplacer les boucle et le if par une requête Linq.



Mais aussi, il y a peut être un problème de conception, 26 textbox c'est beaucoup.
N'y aurait il pas des contrôles plus adapté, listbox, listiew, datagridview....

Et si tes contrôles étaient bindés à une source de données, il suffirait d''affecter une instance vide et tous les affichages seraient effacés.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
Rejoignez-nous