IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Plusieurs control textbox


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut Plusieurs control textbox
    Bonjour.

    J'ai un panel dans un form avec 4 textbox.
    Chacun, a des conditions pour obliger le format de saisie(numérique), nombre de caractère, passer le focus au control suivant...

    Les conditions étant identique pour tous les textbox, comment est ce que je peux faire pour n'avoir à écrire qu'une seule fois mes instructions et qu'elle ne concerne que le textbox qui a le focus.

    J'ai déjà consulté les forums tutos et autre, et à force de lire je ne sais qu'elle est la solution
    Si quelqu'un pouvait au moins me donner un lien

    d'avance merci

  2. #2
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Salut,

    Utilise la propriété Focused de tes texteBox

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    Bonjour.
    Merci pour la rapidité de la réponse, qui semble être une bonne piste.
    Je regarde ce que je peut en faire

  4. #4
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Tu peux aussi utiliser l'événement Validated

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Tb_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB1.Validated,TB2.Validated,TB3.Validated,TB4.Validated
     
    -- code de contrôle de données
    end sub

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    J'étais partis dans l'idée de créer dans un module un sub tbox() avec en exemple, If TextBox.Text.Count= , appeler par le textbox qui a le focus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
     
    tbox()
     
    end sub
    Pour chaque textbox concerné, et je me retrouvais coincé pour récupéré le nom du textbox dans mon sub.

  6. #6
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    tu le met en parametre de ton sub

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    j'ai tenté de faire textbox.name = "textbox"& i dans une boucle et ca l'a pas fait.

  8. #8
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Tu peux avoir le nom de ton textbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    Dim Tb as textBox = Sender
    Dim Nom as String = tb.Name
    tbox(Nom)
     
    end sub

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    et tu peux faire handles txt1.event, txt2.event, txt3.event, txt3.event
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Citation Envoyé par rgmgm Voir le message
    J'ai un panel dans un form avec 4 textbox.
    Les conditions étant identique pour tous les textbox, comment est ce que je peux faire pour n'avoir à écrire qu'une seule fois mes instructions et qu'elle ne concerne que le textbox qui a le focus.
    Bonsoir,

    pourquoi ne pas abonner chaque TextBox du Panel, aux événements voulus, par l'entremise de AddHandler ?
    Ainsi une seule procédure pour tous les contrôles concernés, qui réagit en rapport avec le contrôle déclancheur.

    Ici un exemple.
    Le TextBox qui reçoit la touche "entrée", renvoie le focus sur son suivant :
    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
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            RechercheTxtBox(TryCast(Me.Panel1, Panel))
        End Sub
     
        ' Recherche de tout TextBox appartenant au conteneur désigné,
        Private Sub RechercheTxtBox(ByRef parent As Control)
     
            For Each crl As Control In parent.Controls
                crl = TryCast(crl, TextBox)
                If crl IsNot Nothing Then
                    ' pour l'abonner à tout event désiré.
                    AddHandler crl.KeyDown, AddressOf TextBoxReturn
                End If
            Next
        End Sub
     
        Private Sub TextBoxReturn(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs)
     
            Dim ctl As Control = CType(sender, TextBox)
            Select Case e.KeyCode
                Case Is = Windows.Forms.Keys.Return
                    Dim ctlSuivant As Control = Me.GetNextControl(ctl, True)
                    If ctlSuivant Is DirectCast(ctlSuivant, TextBox) AndAlso ctlSuivant IsNot Nothing Then
                        ctlSuivant.Select()
                    End If
            End Select
        End Sub

  11. #11
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Par défaut
    Merci de votre participation qui m'a permis de résoudre mon problème.
    J'ai fini par faire un handle sur tb1.keypress, tb2.keypress,..., autant de fois que nécessaire, et aussi utilisé CType(sender, TextBox)

    J'avais déjà buté sur la même difficulté avec des checkbox.

    Je ne publie pas mon code, car il me reste des petites erreurs à résoudre, et aussi parce que je ne considère pas l'écriture de mon code comme étant suffisamment propre pour être démonstrative.

  12. #12
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pour info, dans ce cas directcast est plus rapide que ctype qui est en théorie réservé pour des conversions entre type
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] mettre en majuscule le texte d'un controle textbox
    Par grome dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/10/2011, 00h12
  2. [XL-2007] plusieurs Controls pour différente liste de textbox
    Par north_ dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/08/2009, 07h00
  3. Evenement pour plusieurs controles creed dynamiquement
    Par sovo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 23/10/2006, 17h14
  4. Réponses: 5
    Dernier message: 22/09/2005, 16h13
  5. [C#] Je veux formater un control textBox
    Par justice007 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/05/2004, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo