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 :

[VB.NET 2003] System.NullReferenceException


Sujet :

Windows Forms

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut [VB.NET 2003] System.NullReferenceException
    Bonjour,

    Voici mon problème, j'espère que quelqu'un va pouvoir m'aider.

    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem6.Click
            Me.Hide()
            Dim dataClient As New frmDataClient
            dataClient.crm = Me
            dataClient.bNew = True
            dataClient.Show()
        End Sub
    Mon problème est que je reçois parfois une erreur System.NullReferenceException après la dernière instruction de ce bout de code. Je dis parfois car, j'ignore pourquoi, il arrive qu'à la place de donner une erreur, l'application se ferme purement et simplement.

    J'ai déjà vérifier en pas à pas, en mettant en commentarisant (ça se dit ça?^^) en tout ou en partie le code de l'évènement load de frmDataClient ce n'est pas le code que j'ai écris qui génère l'erreur. Du moins d'après ce que j'ai compris.

    Lorsque j'ai la boite de dialogue de l'erreur (quand elle s'affiche et que l'application n'est pas fermée), si je clique sur "Break", visual studio me dit :
    There is no source code for the current location
    Si je clique sur continue, l'application continue de s'exécuter normalement.

    Encore un détail qui, je pense, doit avoir son importance, ce phénomène ne se produit que si je choisis cet élément de menu en premier lieu. Si je fais n'importe quoi d'autre avant dans mon application, il n'y a aucun problème.

    Quelqu'un aurait une idée?

    Merci d'avance.

    Griftou.
    Kropernic

  2. #2
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Eu j'ai pas très bien compris mais vu ton code rien ne peut valoir "Nothing"... Donc ton erreur vient d'autre part.

    Quelles sont les manipulations que tu fais exactement et qui déclancle l'erreur ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Mes manipulations sont :

    1 : Je lance l'application (F5)
    2 : Je vais dans le menu Client de l'application
    3 : Je clique sur "Création" dans le menu Client

    Voici la composition du menu.

    Fichier --> Quitter
    Client --> Création
    Client --> Recherche
    Client --> Contact --> Création
    Client --> Contact --> Recherche
    Commande --> Création
    Commande --> Recherche
    Visite --> Création
    Visite --> Recherche

    Depuis que j'ai posté ce message, il a commencé à le faire aussi quand je clique sur "Recherche dans le menu Client.

    C'est le même code que pour Création mis à part le nom de form qui est affichée.

    Comme j'ai dit, j'ai exécuté le code en mode pas à pas (en poussant consciensieusement sur F8 à chaque fois...) et ça ne plante pas sur une ligne que j'ai écrite. Le problème vient d'ailleurs. C'est pour cela que je suis totalement perdu.

    Griftou.
    Kropernic

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Pas d'idée ?

    J'ai exécuté le code en mettant le Me.Hide() à la fin de la procédure et l'erreur se produit bien à la sortir de la méthode Show() que je veux afficher, avant que la méthode Hide ne soit appelée.

    Autre fait intéressant,ça le fait avec tous mes menus en fait... (enfin ceux pour lesquels j'ai déjà mis quelque chose derrière)

    Et là où je suis encore plus perdu, c'est que j'ai englobé le morceau de code dans un Try Catch et que l'exception n'est pas interceptée...

    Cela vient donc manifestement d'ailleurs mais d'où ?

    Griftou.
    Kropernic

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bon et bien j'ai résolu le mystère. Totalement par hasard mais résolu quand même !

    En fait, pour pouvoir exécuter la ligne j'avais mis dans les variables globales de de ma form dataClient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public crm as New frmCrm
    Apparemment, ce "New" était de trop. Je ne comprends pas trop pourquoi (c'est encore assez obscure toutes ces histoires avec new et dispose pour moi) mais maintenant que je les ai enlevé, ça fonctionne.

    Si quelqu'un pouvait m'en dire plus sur quand faut-il utiliser new/dispose et quand ne faut-il pas, ce serait sympa.

    Griftou.
    Kropernic

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

Discussions similaires

  1. [VB.NET] System.NullReferenceException
    Par LeGrosWinnie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/12/2005, 13h31
  2. [VB.NET] Erreur System.InvalidCastException
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/09/2004, 11h47
  3. [ide .net 2003] Fichiers d'extension cc
    Par delta_ dans le forum MFC
    Réponses: 8
    Dernier message: 19/09/2004, 20h55
  4. [IDE][VS.NET 2003] Y a-t-il une liste des racourcis ?
    Par 404Found dans le forum Contribuez
    Réponses: 2
    Dernier message: 22/06/2004, 20h20
  5. VS .NET 2003 et DirectX 9
    Par GreenPhoenix dans le forum DirectX
    Réponses: 5
    Dernier message: 04/02/2004, 10h52

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