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 :

Une référence à un membre non partagé requiert une référence d'objet.


Sujet :

VB.NET

  1. #1
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut Une référence à un membre non partagé requiert une référence d'objet.
    Bonsoir ou Bonjour à tous,


    Je travaille actuellement sur deux projets séparés (qu'on va appeler Projet 1 et Projet 2) qui sont tout les deux en rapport avec se que je veux faire, je viens à l'instant d'ajouter Projet 2 dans la solutions de Projet 1, ça a apparemment fonctionné, maintenant se que je voudrais faire c'est ajouter un bouton dans une Form de Projet 1 qui va ouvrir une Form qui est dans Projet 2 (je sais pas si c'est possible), le problème c'est que quand je tape le nom de la Frorm (Panel) du Projet 2, dans le Projet 1, suivi de .show j'ai l'erreur :

    Nom : errerer.png
Affichages : 608
Taille : 5,8 Ko

    J'ai aussi un autre problème, dans Projet 2 j'ai une Form appelé "Test" , lorsque je tape "Test" dans le Projet 1, cette Form n'est pas détectée alors que les autres si..

    Merci, Cordialement

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    Panel c'est le nom de ton instance ? Parce que Show n'est pas une méthode static.
    Pour ta deuxième Form tu l'as bien déclarée en public ?

  3. #3
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Salut,

    Panel c'est le nom de ton instance ? Parce que Show n'est pas une méthode static.
    Pour ta deuxième Form tu l'as bien déclarée en public ?
    Salut,

    Panel c'est le nom d'une form
    Oui oui je l'ai bien déclarée en public

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Panel semble être le nom de ta classe dérivée de Form, et non une instance de celle-ci.
    En tout cas c'est ce que semble dire ton message d'erreur.

    Pour l'autre souci t'es sûr d'avoir déclaré ta classe dans le bon namespace ? De l'avoir bien importé ?
    (je sais pas bien comment ça fonctionne en VB mais le principe reste le même).

  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
    Il faut également que projet 1 référence le projet 2... Sinon, il ne pourra pas accéder à ces éléments publiques...

    Mais entre nous, c'est tout de même bizarre d'avoir deux projets d'interface séparés qui interagissent entre eux...
    Ca va être galère je trouve....

    Quelle projet sera lancé d'ailleurs comme exécutable? le 1 avec le 2 sous form de dll ?
    Et il y aurait aussi la possibilité de lancé le 2 qui référence le 1 ? sinon quel intérêt d'avoir 2 projets WinForms ?

    Pourquoi ne pas tout mettre dans un projet ? Si c'est pour mutualisé des bouts d'interface... Alors tu peux faire un projet de UserControl qui sera référencé et utilisé par x projets winForms...

  6. #6
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Il faut également que projet 1 référence le projet 2... Sinon, il ne pourra pas accéder à ces éléments publiques...

    Mais entre nous, c'est tout de même bizarre d'avoir deux projets d'interface séparés qui interagissent entre eux...
    Ca va être galère je trouve....

    Quelle projet sera lancé d'ailleurs comme exécutable? le 1 avec le 2 sous form de dll ?
    Et il y aurait aussi la possibilité de lancé le 2 qui référence le 1 ? sinon quel intérêt d'avoir 2 projets WinForms ?

    Pourquoi ne pas tout mettre dans un projet ? Si c'est pour mutualisé des bouts d'interface... Alors tu peux faire un projet de UserControl qui sera référencé et utilisé par x projets winForms...
    Bah non c'est pas vraiment bizarre parce que je suis en train de faire un chat et un panel administrateur qui gère la base de données, dans le chat, si la personne qui se connecte est admin alors le bouton pour ouvrir le Panel administrateur apparaît, si vous avez des des solutions, je suis preneur car je vois pas trop comment faire pour ouvrir une form d'un autre projet..

    Citation Envoyé par jopopmk Voir le message
    Panel semble être le nom de ta classe dérivée de Form, et non une instance de celle-ci.
    En tout cas c'est ce que semble dire ton message d'erreur.

    Pour l'autre souci t'es sûr d'avoir déclaré ta classe dans le bon namespace ? De l'avoir bien importé ?
    (je sais pas bien comment ça fonctionne en VB mais le principe reste le même).
    "Et non une instance de celle-ci" , Je comprends pas trop se que tu veux dire
    Oui oui j'ai bien tout importé, lla classe déclarée dans le bon namespace

  7. #7
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Voilà une classe dérivée de Form (syntaxe VB à prendre avec des pincettes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Class Panel Inherits Form
       ' le reste ta décla
    End Class
    Voilà une instance de cette classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim monPanel As Panel = New Panel()
    La notion d'instance est une des bases. Le glossaire de la prog peut sembler un peu barbant mais il permet de mettre les mots adéquats sur chaque chose. Dans la vie de tout les jours ça permet, par exemple, de mieux comprendre les messages d'erreur.

  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 mathisdu42 Voir le message
    Bah non c'est pas vraiment bizarre parce que je suis en train de faire un chat et un panel administrateur qui gère la base de données, dans le chat, si la personne qui se connecte est admin alors le bouton pour ouvrir le Panel administrateur apparaît, si vous avez des des solutions, je suis preneur car je vois pas trop comment faire pour ouvrir une form d'un autre projet...
    Ma question est plutôt celle-ci : Pourquoi le panel Administrateur ne peut il pas faire partie intégrante du projet de Chat ? A la connexion, en fonction de l'utilisateur, l'application permettre ou pas l'affichage de ce panel...

    C'est même beaucoup plus simple de tout gérer dans une seule solution, plutôt que d'en créer deux qui devront communiquer...

  9. #9
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Ma question est plutôt celle-ci : Pourquoi le panel Administrateur ne peut il pas faire partie intégrante du projet de Chat ? A la connexion, en fonction de l'utilisateur, l'application permettre ou pas l'affichage de ce panel...

    C'est même beaucoup plus simple de tout gérer dans une seule solution, plutôt que d'en créer deux qui devront communiquer...
    Bah justement c'est ce que j'aimerais faire ! Le problème c'est que je sais pas comment faire, sans tout refaire ..

  10. #10
    Membre actif
    Homme Profil pro
    Automaticien
    Inscrit en
    Avril 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 96
    Par défaut
    Évite d'utiliser des mots clés pour tes contrôles, variables.
    Test ou Panel peuvent correspondre à autre chose.

    Utilises tu bien l'attribut New pour créer tes objets ?

  11. #11
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par ekydeta Voir le message
    Évite d'utiliser des mots clés pour tes contrôles, variables.
    Test ou Panel peuvent correspondre à autre chose.

    Utilises tu bien l'attribut New pour créer tes objets ?
    J'ai tenté de faire ça :

    Dim p As Panel = New Panel

    p.Show()
    Aucune erreur mais aucune action lorsque j'appuie sur le bouton ..

  12. #12
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Ah oui, le nom Panel semble être déjà utilisé pour un Control.
    Renomme ta classe (ex. AdminPanel) pour voir si ça fonctionne mieux.

  13. #13
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Ah oui, le nom Panel semble être déjà utilisé pour un Control.
    Renomme ta classe (ex. AdminPanel) pour voir si ça fonctionne mieux.
    Lorsque je renomme ma form, le nom "Panel" existe toujours lorsque je le tape mais pas le nouveau nom.. "AdminPanel"

  14. #14
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Du coup c'est bien que tu as un souci de référencement entre tes deux projets ou d'import de namespace.
    J'aurais dû penser plutôt au coup du Panel (le controle) vu le tooltip que tu nous montrais dans ton premier message.

    Je pense qu'il vaudrait mieux remettre à plat le découpage de ta solution.
    Dans tes explications j'ai rien lu qui pourrait être contraignant.
    Et tu n'es pas obligé de "tout refaire", il suffit de récupérer les différents fichiers d'un projet et les mettre dans l'autre.

  15. #15
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Et tu n'es pas obligé de "tout refaire", il suffit de récupérer les différents fichiers d'un projet et les mettre dans l'autre.
    Je dois donc mettre quel fichiers dans la solution ?

  16. #16
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Tu vas conserver ton projet principal (celui qui contient la main Form),
    tu vas copier tous les fichiers de l'autre projet dans le répertoire du premier (sauf les fichiers vsproj),
    puis tu vas les intégrer dans ton projet principal (ajout > élément existant : tu sélectionnes le fichiers nouvellement copiés)
    et enfin tu peux supprimer de ta solution le projet devenu inutile.

  17. #17
    Membre confirmé Avatar de mathisdu42
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2013
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2013
    Messages : 168
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Tu vas conserver ton projet principal (celui qui contient la main Form),
    tu vas copier tous les fichiers de l'autre projet dans le répertoire du premier (sauf les fichiers vsproj),
    puis tu vas les intégrer dans ton projet principal (ajout > élément existant : tu sélectionnes le fichiers nouvellement copiés)
    et enfin tu peux supprimer de ta solution le projet devenu inutile.
    D'accord donc je copie colle tout les .vb/.designer.vb/.rex dans le répertoire de mon projet principal (est-ce que je dois aussi mettre les dossier tel que obj etc ?) ensuite je fais la manipulation depuis Visual Studio et c'est tout ?
    Merci

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/12/2014, 22h12
  2. Réponses: 2
    Dernier message: 23/12/2010, 15h50
  3. Réponses: 5
    Dernier message: 28/04/2010, 14h54
  4. Réponses: 1
    Dernier message: 08/12/2009, 15h58
  5. Réponses: 1
    Dernier message: 26/09/2007, 17h16

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