begin process at 2010 02 10 01:32:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Autre

 > 

Object reference not set to an instance of an object.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Object reference not set to an instance of an object.

mercredi 23 janvier 2008 à 12:07:09 | Object reference not set to an instance of an object.

mastoc

Bonjour,

Je travail sur Visual 2005. J'ai créé un contrôle personnalisé que je peux réutiliser dans mes divers projets C#. Ce contrôle est divisé en 2 classes :
> ButtonPopUp qui permet de visualiser un bouton popUp,
> ButtonPopUpList qui gère une fenêtre popUp appelé lorsque l'utilisateur appui sur le bouton. Elle gère en fait une ListView.

Tout les accés à ButtonPopUpList se font au travers de la classe ButtonPopUp.

C'est une variable membre de la classe ButtonPopUp qui me pose un problème : "m_sSelectedElementName". Cette variable possède un accesseur (avec un Get() et un Set()) qui me permet de savoir quel élément est sélectionné dans la listView de la fenêtre popUp. Voici la liste des variables membres et l'accesseur :

VARIABLES :
      /// <summary>
      /// Nom de l'élément sélectionné
      /// </summary>
      private string m_sSelectedElementName = "";


ACCESSEUR :
      /// <summary>
      /// Obtient le nom de l'élément sélectionné
      /// </summary>
      [
        EditorBrowsable(EditorBrowsableState.Never),
        Browsable (false),
      ]
      public string SelectedElementName
      {
        get { return m_sSelectedElementName; }
        set
        {
          // vérifie que l'élément se trouve bien dans la liste
          if (m_popUpList.ListItems.Contains(value))
          {
            // récupération du nom
            m_sSelectedElementName = value;

            // modification de l'élément sélectionné dans la fenêtre popup
            m_popUpList.ElementName = m_sSelectedElementName;

            // récupération de l'image
            m_iSelectedElementImage = m_popUpList.ElementImage;

            // changement de l'image sur le bouton
            if (m_iSelectedElementImage != null)
              buttonEditSymbol.BackgroundImage = m_iSelectedElementImage;
          }
        }
      }

Lorsque j'ajoute mon contrôle perso ButtonPopUp dans une fenêtre d'un de mes projets via le Designer de Visual il génère automatiquement le code dans un un fichier "Designer.cs".
C'est normal jusque là sauf que lorsque je revient sur le Designer de cette fenêtre le message suivant apparaît :
Object reference not set to an instance of an object.

Il refuse donc de m'afficher la fenêtre.

Je retourne donc dans le "Designer.cs" pour voir ce qui se passe et je vois que la ligne suivante apparait dans l'initialisation du contrôle :

      this.buttonPopUpText.BackColor = System.Drawing.Color.Transparent;
      this.buttonPopUpText.Flat = System.Windows.Forms.FlatStyle.Standard;
      resources.ApplyResources(this.buttonPopUpText, "buttonPopUpText");
      this.buttonPopUpText.Name = "buttonPopUpText";
      this.buttonPopUpText.SelectedElementName = "";
      this.buttonPopUpText.ClickOnButtonEdit += new              System.EventHandler(this.buttonPopUpText_ClickOnButtonEdit);
      this.buttonPopUpText.NewselectionInPopUp += new System.EventHandler(this.buttonPopUpText_NewselectionInPopUp);


Si je supprime cette ligne pas de problème le projet démarre et la popUp fonctionne. J'aimerais savoir pourquoi cette ligne apparait dans le fichier "Designer.cs" ?

Comme vous pouvez le constater l'accesseur Set() effectue un certains nombre d'opération. Est-ce celà qui pourrait poser des problème ?

Vive les Moutons !

Vive les Moutons !
mercredi 23 janvier 2008 à 18:00:50 | Re : Object reference not set to an instance of an object.

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !
Hi,
Essaye de rajouter
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
comme attribute sur ta property.



-My Blog-
jeudi 24 janvier 2008 à 09:18:45 | Re : Object reference not set to an instance of an object.

mastoc

Ok je vais essayer.

Sinon, en prenant un peu de recul j'ai remarqué que j'utilisait des doublons dans mes variables. En gros, la variable dont je parle dans mon premier poste et qui me permet de récupérer le nom de l'item séléctionné dans la listView est présente dans ButtonPopUp et dans ButtonPopUpList...

J'aurais dû le remarquer avant mais mieu vaut tard que jamais^^. Du coup je l'ai supprimé de ButtonPopUp.
ButtonPopUp est la seule à être instancier lorsque j'en ai besoin et elle me permet d'afficher un bouton appelant une fenêtre popUp. Au finale elle ne possède plus qu'un accesseur vers la variable de mon autre classe ButtonPopUpList  qui elle gère la fenêtre popUp et son contenu. C'est cette classe ButtonPopUpList qui va garder le nom d'item sélectionné.

Enfin bon, du coup j'ai plus de problème avec cette variable. Par contre je vais quand même essayer ta méthode. Je poste un message pour te dire si c'est la solution.

Dans tous les cas merci de ta réponse !

Vive les Moutons !
jeudi 24 janvier 2008 à 09:42:58 | Re : Object reference not set to an instance of an object.

mastoc

Ok c'est bon tout baigne !

Je rajoute une note au final^^ : J'ai raconté des bêtises sur mon poste juste au-dessus. Ca n'avait rien changé au problème. En fait c'est juste que hier soir j'étais fatigué et que j'étais trop content que cela "fonctionne"^^.

Bref, je sais pas trop ce qui m'a fait croire que tout baigné avec le nettoyage que j'avais effectué mais en tout la seule vrai méthode c'est la tienne Bidou !

Encore merci ;)

Vive les Moutons !
jeudi 24 janvier 2008 à 10:07:24 | Re : Object reference not set to an instance of an object.
jeudi 5 juin 2008 à 09:55:25 | Re : Object reference not set to an instance of an object.

mohamed1919

Bonjour, j'ai le meme probléme mais avec un autre fonctionnement, voila :

webBrowser1.Navigate(URL +

"/search?q=" + combo2.Text);===> sa fonctionne trés bien

WebBrowser wb = newWebBrowser();

wb.Document.ExecCommand(

"SaveAs", false, "C:\test.html");===>c'est ici que le message d'erreur je le trouve 'Object reference not set to an instance of an object.'
le but est de copie le contenue du WebBrowser dans un fichier HTML .
Est-ce que vous pouvez m'aider.


Cette discussion est classée dans : set, fenêtre, an, object, buttonpopuptext


Répondre à ce message

Sujets en rapport avec ce message

instanciation IWebBrowser2 [ par netTPH ] Salut !je n'arrive pas à créer un objet IWebBrowser2...je viens à peine de me mettre en c# donc, j'ai surement écrit une bêtise quelconque Voilà le co List<String> et addrange [ par haklia ] Bonjour à tous,Bon j'ai un nouveau souci.Voilà ce que j'ai : List fichiers = null;   // = null est là pour éviter les Use of unassigned local variable Linq - Object reference not set to an instance of an object [ par wally88 ] Bonjour, Voila j'essaie de voir comment fonctionne linq, et j'ai toujours cette erreur lors de l'execution : Object reference not set to an instance o Object reference not set to an instance of an object(.length) [ par baby85 ] bonsoir,j'ai un probleme au niveau de .lengthj ai fais une methode qui prend comme parmetre une variable stringpublic string getstrg(string tx)        Probleme d'acces à une base Access [ par ja001net ] Bonjour,Je fais un programme en C#.net utilisant une basse access, avec laquelle j'accède via un OleDbConnection un OleDbDataReader et un OleDbCommand Afficher une fenêtre de saisie utilisateur [ par Morpheus51Neo ] Bonjour à tous,Voici mon problème. C'est un truc tout bête que je n'arrive pas à trouver!Quelle fonction me permet d'afficher une petite fenêtre dans Redimensionner une fenêtre d'un programme externe [ par Cameleon69 ] BonjourJe cherche comment faire pour redimensionner une fenêtre d'un programme externe que je lance depuis mon application.Exemple je voudrais lancer afficher une fenêtre mdi en premier plan??? [ par caloux ] bonjour,comment afficher une fenêtre fille d'une mdi en premier plan,topmost et showdialog() marche pas....merci window.form et evénement closing [ par Thanos_the_yopper ] voila mon probleme :j'ai une fenetre MdiContainer, et j'ouvre d'autre fenêtre fille à l'intérieur. Sur ces fenètre, j'ai des événement Closing et j'au Attachements outlook [ par Gabberzorus ] Salut,Je voudrais utiliser cette méthode pour envoyer des mails avec attachements : Outlook.Attachments.Add(object Source, object Type, object Positio


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales