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 :

Fonction pour manipuler des formulaires


Sujet :

VB.NET

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut Fonction pour manipuler des formulaires
    Bonsoir,

    J'ai un projet sous VB 2012 dont plusieurs formulaires possèdent une sorte de barre de titre. Il s'agit de Label et PictureBox colorés et un peu stylés pour rendre un peu plus agréable les formulaires.

    Le code pour afficher cette "barre de titre" est dupliqué dans le Load de chaque formulaire.
    Comme il n'y a que la largeur de la "barre de titre" qui change ainsi que le texte affiché, je voudrais mettre ce code dans une fonction qui sera appelée par chaque formulaire.

    Le problème c'est que je ne sais pas comment faire.
    Merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    La largeur d'une image qui s'adapte en fonction de la taille d'un formulaire c'est un boulot pour la propriété Anchor (en plus ça fonctionne sur un resize à l'execution contrairement à la technique que je crois deviner selon ton expliquation).

    Pour ce qui concerne la réutilisation d'un formulaire type préconfigurer, la méthode la plus correct serait d'utiliser la notion d'héritage. Il y a plein d'info sur le sujet dans les tutoriel du site.

    Sinon concernant une méthode commune pour plusieurs type de formulaire (sans recourrir à l'héritage) tu peux définire une méthode dans un module (ou d'une procédure shared d'une quelconque class) en passant le formulaire en paramètre.

    Mais c'est tellement moche d'un point de vue programmation objet que je refuse la paternité de cette solution...

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 122
    Points
    25 122
    Par défaut
    Citation Envoyé par sinople Voir le message
    Sinon concernant une méthode commune pour plusieurs type de formulaire (sans recourrir à l'héritage) tu peux définire une méthode dans un module (ou d'une procédure shared d'une quelconque class) en passant le formulaire en paramètre.

    Mais c'est tellement moche d'un point de vue programmation objet que je refuse la paternité de cette solution...
    Il n'y a rien de moche là dedans, même microsoft a utilisé cette méthode dans le framework à plusieurs endroits ...

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut
    Merci tous les 2.
    J'ai essayé les 2 méthodes mais je n'y arrive pas

    Par exemple, j'ai créé un module avec une fonction publique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Module modFormulaire
        Public Sub AfficherTitre(ByRef MaForm As Form)
            MaForm.lblFenetreTitre.Text = "Test"
        End Sub
    End Module
    Mais j'ai l'erreur
    'lblFenetreTitre' n'est pas un membre de 'System.Windows.Forms.Form'
    Je veux modifier le texte du Label à travers le module.
    Comment faire ?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 122
    Points
    25 122
    Par défaut
    il te faut de l'héritage ...

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut
    Je progresse. Je suis en train de faire des tests pour apprendre.
    J'ai créé un "formulaire modèle" avec notamment une PictureBox qui a sa propriété Anchor = Top, Left, Right

    J'ai créée un formulaire Test qui hérite du "formulaire modèle".
    Dans dans la MDI, j'appelle le formulaire Test avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim test As New frmTest
    test.NomImage = "Test.png"
    test.TitreFormulaire = "Test"
    test.Show()
    Cela fonctionne, sauf pour la taille de la PictureBox. En fait, elle n'est pas redimensionnée à la largeur de la form Test, malgré la propriété Anchor du "formulaire modèle".
    Je ne comprends pas.

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Anchor va juste faire en sorte que la picture box va s'agrendir ou diminuer avec le formulaire lors d'un resize.

    Par contre il faut que la largeur initial du picture box soit équivalente à celui de la form sinon c'est clair que ça ne marchera pas.

  8. #8
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut
    OK
    Merci sinople

    J'ai donc ajouter une propriété au "formulaire modèle" qui contient la largeur du formulaire fils.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/12/2008, 12h51
  2. Réponses: 0
    Dernier message: 25/12/2008, 12h36
  3. Réponses: 6
    Dernier message: 22/11/2005, 17h08
  4. Delphi 2005 pour manipuler des formulaires MS-Access ??
    Par Mustard007 dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2005, 21h39
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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