cs_mastoc
Messages postés26Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention 3 mars 2009
-
23 janv. 2008 à 12:07
mohamed1919
Messages postés1Date d'inscriptionvendredi 30 mai 2008StatutMembreDernière intervention 5 juin 2008
-
5 juin 2008 à 09:55
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
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.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 !
A voir également:
Object reference not set to an instance of an object .net
cs_mastoc
Messages postés26Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention 3 mars 2009 24 janv. 2008 à 09:18
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.
cs_mastoc
Messages postés26Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention 3 mars 2009 24 janv. 2008 à 09:42
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 !
mohamed1919
Messages postés1Date d'inscriptionvendredi 30 mai 2008StatutMembreDernière intervention 5 juin 2008 5 juin 2008 à 09:55
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 =
new
WebBrowser();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.