none
SelectNextControl et évènement validating. RRS feed

  • Discussion générale

  • Bonjour,

    Je dessine deux textbox et les places sur ma form de la manière suivante :

    Dim TXT1 As New Textbox
    Dim TXT2 As New Textbox
    
    TXT1.Width = 150
    TXT1.Height = 20
    TXT1.Top = 10
    TXT1.Left = 10
    TXT1.Name = "TXT1"
    TXT1.TabIndex = 0
    
    TXT2.Width = 150
    TXT2.Height = 20
    TXT2.Top = 50
    TXT2.Left = 10
    TXT2.Name = "TXT2"
    TXT2.TabIndex = 1
    
    Me.Controls.Add(TXT1)
    Me.Controls.Add(TXT2)
    
    TXT2.Focus()
    
    AddHandler TXT1.Enter, AddressOf TXTBox_Preinput
    AddHandler TXT1.Validating, AddressOf TXTBox_Postinput
    AddHandler TXT2.Enter, AddressOf TXTBox_Preinput
    AddHandler TXT2.Validating, AddressOf TXTBox_Postinput
    
    TXT1.Focus()

    Dans l'évènement TXTBox_Preinput, voici ce que je fais :

    Public Sub TXTBox_Preinput(ByVal OBJSender As Object, ByVal e As System.EventArgs)
    
    Dim TXTBase As New Textbox
    
    TXTBase = OBJSender
    TXTBase.SelectAll()
    
    Call Control_PreInput(TXTBase, 0, 0, "", "")
    
    End Sub

    Et enfin, dans Control_Preinput voici ce que je fais :

    Public Sub Control_PreInput(ByRef CTRControl As Control, ByVal INTSecteur As Integer, ByVal INTSuite As Integer, ByVal STRDbName As String, ByRef STRValOri As String)
    
            If CTRControl.Name = "TXT1" Then
                FRMEcran.SelectNextControl(CTRControl, True, True, True, True)
            End If
    
        End Sub

    Sachant que FRMEcran est validé par Me dans le Form Load du projet.

    Ma question, quand je fais le FRMEcran.SelectNextControl, pourquoi l'évènement validating du contrôle TXT1 n'est pas déclenché ? J'ai essayé le même raisonnement avec l'évènement LostFocus et l'évènement Leave et j'arrive au même problème.

    Qu'est-ce qui cloche ?

    Merci d'avance.

    Bien à vous.

    PS : Je peux envoyer le code du projet si besoin.


    Damien Detrain

    samedi 19 décembre 2015 14:19

Toutes les réponses

  • Public Sub TXTBox_Preinput(ByVal OBJSender As Object, ByVal e As System.EventArgs)
    
    Dim TXTBase = DirectCast(OBJSender, TextBox)
    TXTBase.SelectAll()
    
    Call Control_PreInput(TXTBase, 0, 0, "", "")
    
    End Sub

    Petite remarque au cas ou.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    lundi 21 décembre 2015 07:27
  • Bonjour,

    Malheureusement, ça ne change rien.

    Merci quand même.

    Bien à vous.


    Damien Detrain

    lundi 21 décembre 2015 09:16
  • Bonjour, Damien Detrain,


    Le thread est-il toujours actuel?
    Merci de nous tenir au courant.
    Bonnes fêtes

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 29 décembre 2015 16:21
    Modérateur
  • Bonjour,

    Oui le thread est toujours d'actualité.

    Bien à vous.


    Damien Detrain

    mardi 29 décembre 2015 19:43
  • Bonjour, Damien Detrain,


    Au cas ou vous avez essayé le DirectCast comme Richard a suggéré, je vous invite à tester le deuxième exemple en bas : 
    Control.SelectNextControl, méthode (Control, Boolean, Boolean, Boolean, Boolean)

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 30 décembre 2015 11:50
    Modérateur
  • Bonjour,

    Je regarde à ça et vous reviens dès que possible.

    Bon réveillon et bonne année !


    Damien Detrain

    jeudi 31 décembre 2015 15:58
  • Bonjour,

    Je suis navré mais ça ne change rien.

    Voici mon code :

    Public FRMEcran As New Form
    
    Public Sub TXTBox_Postinput(ByVal OBJSender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
    
    Dim TXTBase = DirectCast(OBJSender, CLSTextbox)
    
            Call Control_PostInput(TXTBase, 0, "")
    
        End Sub
    
        Public Sub TXTBox_Preinput(ByVal OBJSender As Object, ByVal e As System.EventArgs)
    
            Dim TXTBase = DirectCast(OBJSender, CLSTextbox)
    
            TXTBase.SelectAll()
    
            Call Control_PreInput(TXTBase, 0, 0, "", "")
    
        End Sub
    
        Public Sub Control_PostInput(ByRef CTRControl As Control, ByVal INTSecteur As Integer, ByVal STRDbName As String, Optional ByVal BOOSelectNextControl As Boolean = True)
    
            FRMEcran.Text = CTRControl.Name
    
        End Sub
    
    
        Public Sub Control_PreInput(ByRef CTRControl As Control, ByVal INTSecteur As Integer, ByVal INTSuite As Integer, ByVal STRDbName As String, ByRef STRValOri As String)
    
            Dim TXTBase = DirectCast(CTRControl, CLSTextbox)
    
            If TXTBase.Name = "TXT1" Then
                TXTBase.SelectNextControl(TXTBase, True, True, True, True)
            End If
    
        End Sub

    Qu'est-ce qui ne tourne pas rond ?

    Merci d'avance.


    Damien Detrain

    lundi 4 janvier 2016 12:06
  • Bonsoir,

    Je me permets de relancer ce post.

    Quelqu'un aurait-il une idée ?

    Merci d'avance.

    BàV


    Damien Detrain

    mardi 19 janvier 2016 19:37