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 :

ouverture form via variable


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 39
    Points
    39
    Par défaut ouverture form via variable
    Bonjour à Tous !

    j'aimerais pouvoir ouvrir, s'il existe, le formulaire dont le nom est contenu dans une chaine de caractère (String)... mon collèque qui bosse en VBA me demandait si je ne pouvais pas utiliser "docmd.Openform" mais je travaille en Compact Framework avec SharpDevelop...

    Merci d'avance...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Si tu connais le nom du type du formulaire et le nom de l'assembly, tu peux en créer une instance avec la méthode Activator.CreateInstance

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 96
    Points : 71
    Points
    71
    Par défaut
    Docmd.OpenForm c'est uniquement de la syntaxe Access, tu ne pourras pas l'appeler...

    Par contre un Activator peut effectivement fonctionner!
    Sinon tu fait un gros select case qui défini selon la chaine que tu récupére quelle formulaire tu ouvre...

    Renaud

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    Merci beaucoup j'ai déjà fait le select case mais bon 100 lignes de code... '-_- pour un mot c'est dommage je verrai demain matin pour le Activator... le nom de l'asssembly c'est a dire?

    Bonne soirée

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    Slt c'est peut etre con ce que je vais dire mais si tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try
    {
    tavaleur string frm = new tavaleurstring()
    frm.show();
    }
    catch
    {
    la form n'existe pas
    }
    soit c'est totalement con soit j'ai pas compris la question

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    ah non ca marchera pas... une variable qui contient le nom d'un type ne peut pas être utilisée comme un type !

    Sinon l'assembly c'est le nom de l'exe ou la dll qui contient le type. Si tu mets null comme nom d'assembly l'Activator cherchera dans l'assembly courant.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    Oui j'avais pas reflechis a sa merci

    bon bé je crois que vaut mieux que je retourne sur C#

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca marchera pas en C# non plus


    @jerem59300 : le nom de l'assembly ca doit etre le nom de l'exe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    oui sa c'est sur que sa ne marchera pas !!!!!

  10. #10
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    J'ai jeté un oeil sur le Activator.CreateInstance() mais je ne trouve pas mon bonheur... je récupère une string qui correspond au name d'un form et que je souhaite appelé grace à) cette string... de plus le type du form c'est forcément Form NON? on ne s'est peut etre pas compris...

    Merci tout de meme de l'aide apportée

  11. #11
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Perso, j'utilise le AppDomain.CurrentDomain.CreateInstance.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim ohCustomerAppObject As System.Runtime.Remoting.ObjectHandle = AppDomain.CurrentDomain.CreateInstance(NomCompletDeLAssembly, NomCompletDuType-->NomAssembly.NomType)
    L'objet tu l'obtiens par : ohCustomerAppObject.Unwrap()

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    de plus le type du form c'est forcément Form NON?
    eh non justement, sinon il suffirait de faire "new form"... le type de la form (Form1 par exemple) est un type hérité de Form. Le nom du type est la propriété (Name) de la form.

    tu peux faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub OpenForm(ByVal typeName as String)
            Dim f As Form
            f = CType(Activator.CreateInstance(Nothing, typeName).Unwrap, Form)
            f.Show()
    End Sub
    Attention, ça ne marchera que pour les Form déclarées dans le même assembly... sinon, il faut préciser le nom de l'assembly

  13. #13
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    Cette procédure ne colle pas... La string que je passe en paramètre et qui est utilisée pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = CType(Activator.CreateInstance(Nothing, typeName).Unwrap, Form)
    pose probleme... type string ne peut etre convertit en type Form...

    Merci de votre aide

    [EDIT] je bosse sous sharpDevelop avec le CF...[/EDIT]

  14. #14
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Tu lis les solutions qui marchent ou pas ... quelque soit l'assembly ...

    Enfin moi je dis ça ...

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

Discussions similaires

  1. Code ouverture form via recherche
    Par LUCAS-28 dans le forum IHM
    Réponses: 2
    Dernier message: 18/09/2007, 21h23
  2. Problème ouverture form à partir d'une var
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 29/11/2005, 12h21
  3. [Téléphoner]Focus sur le tel + ouverture Form
    Par samlepiratepaddy dans le forum IHM
    Réponses: 2
    Dernier message: 05/11/2005, 22h06
  4. Ouvrir une form via une ComboBox
    Par Conficius dans le forum Composants VCL
    Réponses: 3
    Dernier message: 05/11/2005, 16h11
  5. Réponses: 4
    Dernier message: 26/08/2004, 08h01

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