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 :

passer une textbox en parametre d'une procedure sub


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut passer une textbox en parametre d'une procedure sub
    Bonjour

    Dans l'appli que je fais j'aimerais pouvoir changer la couleur de l'arriere plan des textbox qui sont null, vide ou égal a zero en mettant un nombre de points en fonction du champ afin de definir sa largeur.

    Pour ce faire j'ai fais ce code, mais sachant que j'ai pas mal de ligne je voudrais a chaque fois passer en argument de la procedure le nom de la textbox, mais voila dans la procedure la textbox est déclaré en tant que textbox et c'est un string que je lui envoie => forcement ca plante.

    j'appelle la procedure avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If MonClient("DateNaissGerant") IsNot DBNull.Value Then 
     
    TxDateNaissanceGerant.Text = CDate(MonClient("DateNaissGerant")).ToString("dd  MMMM yyyy") 
     
    Else 
     
    MetenRouge(TxDateNaissanceGerant, 10)
    C'est le textbox TxDateNaissanceGerant qui n'ai pas bien formater.
    Et voila la procedure dans lequel il est sensé etre envoyer en temp que textbox et non string.

    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
     
    Sub MetenRouge(ByRef NomChamp As TextBox, ByVal NbPoints As Byte)
     
            'met en rouge le champ en argument s'il est vide avec le nombre de . défini en argument
     
            If NomChamp.Text = "" Or NomChamp.Text = "  " Or NomChamp.Text = "0,00 m²" Or NomChamp.Text = "0,00 Euros" Or NomChamp.Text = "0" Then
     
                For i = 0 To NbPoints
                    NomChamp.Text = NomChamp.Text & "."
                Next
     
                NomChamp.BackColor = Color.Red
            Else
                NomChamp.BackColor = Color.White
            End If
    End Sub
    Merci d'avance

  2. #2
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    Et voila la procedure dans lequel il est sensé etre envoyer en temp que textbox et non string
    Pour moi ton argument arrive bien en tant que textbox, par contre
    pour cette parti du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If NomChamp.Text = "" Or NomChamp.Text = "  " Or NomChamp.Text = "0,00 m²" Or NomChamp.Text = "0,00 Euros" Or NomChamp.Text = "0" Then
     
                For i = 0 To NbPoints
                    NomChamp.Text = NomChamp.Text & "."
                Next
     
                NomChamp.BackColor = Color.Red
            Else
                NomChamp.BackColor = Color.White
            End If
    j'aurai plutot mis ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If NomChamp.Text = "" Or NomChamp.Text = "  " Or NomChamp.Text = "0,00 m²" Or NomChamp.Text = "0,00 Euros" Or NomChamp.Text = "0" Then
     
                For i = 0 To NbPoints
                    NomChamp.Text = NomChamp.Text & "."
                NomChamp.BackColor = Color.Red
                  Next
            Else
                NomChamp.BackColor = Color.White
            End If

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Merci de m'avoir repondu, j'attendais une reponse avec impatience n'arrivant toujours pas a trouver pourquoi cela ne marche pas.

    En ce qui concerne ta modif, en mettant le changement de couleur du fond a rouge dans la boucle cela n'apporte (a mon avis de débutant) rien, sauf ralentir le programme.
    La boucle met le nombre de point demandé (en fonction de la place qu'il faudra laisser sur le document word) et ensuite je change la couleur du fond en rouge.

    Toi, tu me propose de mettre la couleur du fond en rouge a chaque rajout de point supplémentaire, je ne comprend pas pourquoi.


    Pour mon probleme:

    Ce n'est pas l'objet textbox qui est envoyé a la procédure mais son contenu, en l'occurrence rien ou null, ou une date si l'utilisateurrempli le textbox par la suite.

    Soit VB.NET n'accepte pas de passer en arguments les objets, soit il me manque quelque chose dans l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MetenRouge(TxDateNaissanceGerant, 10)
    j'ai meme essayé d'envoyer le nom du textbox en string puis de le convertir avec CType en textbox => ca marche pas

    Je suis bien embêté car je comptais bien, passer aussi cette procédure sur l'événement perte focus (cas ou on rajoute des données).

    Si toi ou quelqu'un d'autre a une idée, je suis preneur de toutes informations .
    Merci d'avance

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    Finalement après presque deux jours d'acharnement sur cette ligne je viens de me rendre compte tu avais raison hugoclo

    la textbox passe bien en argument l'erreur était un peu plus haut dans le code, j'avais oublié le mot TypeOf au debut d'une boucle faisant afficher le textbox en question.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/08/2012, 14h23
  2. [XL-2003] Passer le nom d'une TextBox en paramettre d'une procedure
    Par dany13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/10/2010, 22h38
  3. Réponses: 4
    Dernier message: 05/03/2009, 13h52
  4. Réponses: 1
    Dernier message: 20/07/2007, 07h19
  5. Passer une ligne en parametre dans une procedure
    Par schnourf dans le forum Oracle
    Réponses: 5
    Dernier message: 08/06/2006, 15h29

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