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

Windows Forms Discussion :

Lister les forms d'un projet


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Points : 64
    Points
    64
    Par défaut Lister les forms d'un projet
    Bonjour,

    Je suis en train de faire un bout de projet qui permette de saisir/modifier les données de base du projet. Chaque donnée de base à son formulaire de saisie/édition. Le problème est qu'il y a y paquet de données de base. Alors plutôt que faire un formulaire "Menu" avec un "paquet" de boutons vers chaque formulaire d'édition, je voulais (comme je le fais sous Access et ça marche bien :-), remplir une combobox avec les noms des formulaires présents dans le projet, puis après sélection et clic sur un seul bouton, afficher le formulaire d'édition. Mais je ne trouve pas comment parcourir la collection Forms du projet. Je n'ai trouvé que My.Application.Openforms, ce qui, comme son nom l'indique, ne renvoie que les forms ouverts...

    Et autre question, corollaire : comment passer une variable pour ouvrir un form depuis ma ComboBox?

    Merci de votre aide,

    Amicalement,

    JFB

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Points : 64
    Points
    64
    Par défaut
    Super Smyley, le pire c'est que j'étais tombé dessus, avais trouvé ça trop compliqué et zappé... Ca marche super pour faire la liste des forms... Un grand merci!!

    Reste à récupérer le nom du form dans la combobox et le passer au bouton, et là je patine sur la syntaxe de cette foutue variable...

    Encore un petit coup de pouce, voire de main?

    Amicalement,

    JFB

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Ben une fois que l'on a la liste des forms on peut faire un For Each sur cette liste et les rajouter dans la ComboBox avec ZeComboBox.Items.Add(laForm).

    Pour modifier le texte affiché pour une form dans la ComboBox il faut redéfinir la méthode ToString() de la form en question et y mettre ce qu'on veux.

    Enfin, pour obtenir la sélection dans un bouton il faut utiliser ZeComboBox.SelectedItem

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Points : 64
    Points
    64
    Par défaut
    Merci encore Smiley,

    Le premier point, je gère... J'ai juste ajouté
    Me.ComboBox1.DataSource = resultat au code cité ci-dessus.

    Ca marche, les lignes sont là, mais vierges...

    Le second... je butte!

    Le troisième, ça marche! En fait je passais f.name à la Combobox pour voir le nom des forms, du coup quand je faisais un me;combobox.selecteditem.show, il recevait un String, ça marchait pas... Je fais ça à l'aveugle, mais ça fonctionne.

    Donc en résumé, il ne me reste "plus qu'à" comprendre comment afficher le nom de mes forms dans mon combo... Faut-il faire un Array à deux dimensions avec f et f.ToString (ou f.name) pour pouvoir afficher?

    je viens d'essayer de faire un BindingSource, puis d'en faire la source de mon Combo en mode graphique (j'utilise Visual Studio 2008), mais même problème.

    Un dictionnaire peut-être?...

    Encore merci d'avance,

    Amicalement,

    JFB

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Points : 64
    Points
    64
    Par défaut
    Je mets ce post en résolu, voici la solution qui fonctionne pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim resultat As New ArrayList
       Dim a As Reflection.Assembly = System.Reflection.Assembly.GetAssembly(Me.GetType)
       For Each t As Type In a.GetTypes
         If GetType(Form).IsAssignableFrom(t) Then
           Dim f As Form = CType(Activator.CreateInstance(t), Form)
           Me.ComboBox1.Items.Add(f.Name)
         End If
      Next
    End Sub
    Merci à tous,

    Amicalement,

    JFB

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

Discussions similaires

  1. Lister les form d'un projet VB6
    Par pounaid dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/01/2009, 16h08
  2. Lister les forms de mon projet
    Par hotsizzle dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/10/2008, 09h34
  3. Lister les forms dèjà ouvertes
    Par chris81 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/04/2008, 09h48
  4. Lister les états d'un projet ADP
    Par hannii dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/03/2007, 15h26

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