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 :

comment fonctionne le menustrip?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 comment fonctionne le menustrip?
    Bonsoir,

    Je débute en vb.net, et j'aimerais faire un menu qui soit identique sur plusieurs Forms.

    Ma question:
    Dois je refaire le menustrip sur chaque form avec toutes les procedures qui vont avec?
    Si oui peut on mettre les procedures dans un module général, afin de ne pas les réécrire dans chacun des formulaires.

    Enfin, il y a t il une possibilité de connaitre le formulaire appelant comme dans VBA avec .OpenArgs (le nom du formulaire appelant est envoyé en argument de l'appellé, avant de fermer l'appelant).

    J'ai lu qu'il y avait des déclaration de parent et fille à faire sur les forms mais je n'ai pas bien compris.

    Si quelqu'un a un lien sur un tuto, je suis preneur.

    Merci d'avance

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

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Dois je refaire le menustrip sur chaque form avec toutes les procedures qui vont avec?
    Je te conseille la chose suivante afin de résoudre ton problème avec le moins d'emmerde possible.

    Il faut créer un class SuperForm (héritant de la classe Forms de base) sur laquelle tu ajoutes le menustrip et tant qu'à faire les autres modifications communes (couleur, police de caractère, etc.).

    Tu utilises la SuperForm précédement créé pour générer tes formulaires à la place de la class Form standard et ton menu apparaitera directement sur ton formulaire.

    Ce qui devient plus compliquer ensuite, c'est la gestion des évenements de ton menu. Soit l'action est commune au formulaire (Quitter, imprimer, etc) et tu peux la définir dans la classe SuperForm autrement il faudrait définir des actions génériques avec l'attribut "MustOverride" afin de forcer une définition de la fonction dans les formulaires finaux (Ceci permet de s'assurer que tout tes éléments de menu fasse quelque chose).

    Bon l'objectif n'est pas de te faire un court complet sur la prog objet, il y a le cours de Lassert...

  3. #3
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Citation Envoyé par gilles_906 Voir le message
    Bonsoir,
    J'ai lu qu'il y avait des déclaration de parent et fille à faire sur les forms mais je n'ai pas bien compris.
    Tu peux le faire manuellement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Pere_Load()
     
         Dim MaFenetrefille as New Fenetre_fille(Me)
         MaFenetrefille.show()
     
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Class FenetreFille
     
         Private MonPere as Form_Pere
     
     
         Public Sub New(byref MonPadre as Form_Pere) 
     
               Me.MonPere=MonPadre
     
          End Sub
     
    End Class

  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
    Bonjour et merci a tous les deux d'avoir pris le temps de me repondre.

    @ sinople
    Quand tu dis:
    autrement il faudrait définir des actions génériques avec l'attribut "MustOverride" afin de forcer une définition de la fonction dans les formulaires finaux (Ceci permet de s'assurer que tout tes éléments de menu fasse quelque chose).
    Aurais tu un exemple de code pour une action que je comprenne mieux et ou dois je mettre le code? dans la class SuperForm ou dans le form qui contient le menu?

    edit: Un coup de pouce supplémentaire serait le bien venu, dans visual studio j'ai, dans le menu projet (ajouter une class) et basta. Sinon j'ai class component, dans lequel je peux mettre un menu strip mais je ne voit pas bien comment le remplir ensuite mon menu.

    mactwist69
    Merci pour le bout de code, mais a quoi sert de déclarer le pere et les filles?
    Quel est l'utilité en fait.

    Merci
    Gilles

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Et bien pour accéder a des propriétés de la fenêtre parent pardi !

    par exemple, de la fenêtre fille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    me.MonParent.Show()
    Me.Close()
    Mais c'était en réponse à ça:

    'ai lu qu'il y avait des déclaration de parent et fille à faire sur les forms mais je n'ai pas bien compris.
    Donc je ne sais pas pourquoi tu en as besoins

  6. #6
    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 ta réponse
    Adapmettont que formX soit le parent et que formY une des filles.

    si depuis formY je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    formX.Show()
    Me.Close()
    j'affiche formX et ferme formY
    Ca marche aussi et pas besoin d'avoir fait de déclaration.

    Quand tu dis accéder a des propriétés de la fenêtre parent ai je accès a tous les contrôles de la fenêtre parent? parce que la effectivement se serait intéressant.

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

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Aurais tu un exemple de code pour une action que je comprenne mieux et ou dois je mettre le code? dans la class SuperForm ou dans le form qui contient le menu?
    Le "MustOverride" se situe dans des fonctions de la class SuperForm.

    Dans les classes finales, celles qui seront affichée, il doit alors avoir une fonction avec l'attribut "Override x" (x=nom d'une fonction de la class SuperForm).

    Néanmoins dans un premier temps, peux être qu'il est plus simple de juste définir le design du menu dans la class SuperForm et de gérer les évenements (les clicks) individuellement sur chaque Formulaire.

    Si tu veux en savoir plus sur ces histoires d'Override (Redéfinition en français sauf erreur) je te conseille de lire quelque ressource sur la programmation Objet (générique ET/OU dans le cadre de .NET).

    http://plasserre.developpez.com/cour...page=poo2#XV-E
    (P.S. Le reste du cours est aussi plus que pertinant!)

    Une recherche sur la MSDN peut completer ceci.

  8. #8
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Citation Envoyé par gilles_906 Voir le message
    Merci de ta réponse
    Adapmettont que formX soit le parent et que formY une des filles.

    si depuis formY je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    formX.Show()
    Me.Close()
    Ça c'est inexacte. Ça peut marchouiller mais ce n'est pas bon.

    Ca marchouille car tu peux faire appelles a une procédure de la classe.

    Mais pourquoi je dis que c'est pas bon ? Parce que tu ne fais pas appelles a ton instance de FormX mets a la classe.

    Je te donne un exemple, tu as FormX (parent) et FormY (enfant)

    Dans FormX tu déclare deux Form enfant: FormY1 (appelé FY1) et FormY2 (FY2).

    Dans ta solution comment fais tu pour communiquer entre FormY1 et FormY2 ?

    En faisant: ?

    Et bien non.... Si tu utilises la méthode que je t'ai donné, en passant a FY1 et FY2 en parametres la form parent tu pourras faire de FY1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MonPArent.FY2.Show()
    La tu fais appelles a l'instance de FormX et l'instance de FormY


    Quand tu dis accéder a des propriétés de la fenêtre parent ai je accès a tous les contrôles de la fenêtre parent? parce que la effectivement se serait intéressant.
    Et a priori tu as accès a tout ce qui est publique ou shared.

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

Discussions similaires

  1. [JSF] comment fonctionne <h:message> ?
    Par anitshka dans le forum JSF
    Réponses: 5
    Dernier message: 29/06/2005, 17h36
  2. Comment fonctionne TXmlDocumment ????
    Par almisuifre dans le forum C++Builder
    Réponses: 8
    Dernier message: 18/02/2005, 12h54
  3. comment fonctionne une interface graphique???
    Par elekis dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 27/10/2004, 23h10
  4. Comment fonctionne le ClassExplorer ?
    Par borisd dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/09/2004, 17h44
  5. Comment fonctionne le CVS ?
    Par mathieu dans le forum CVS
    Réponses: 6
    Dernier message: 23/03/2004, 11h26

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