Reseté plusieurs textbox

TrnkaJR 1 Messages postés dimanche 29 octobre 2017Date d'inscription 29 octobre 2017 Dernière intervention - 29 oct. 2017 à 16:49 - Dernière réponse : Whismeril 12116 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 octobre 2018 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 29 oct. 2017 à 18:09
0
Merci
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
Commenter la réponse de cs_JMO
Whismeril 12116 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 octobre 2018 Dernière intervention - Modifié par Whismeril le 29/10/2017 à 18:46
0
Merci
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
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.