Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme avec cette methode

10 réponses
Avatar
Philippe
Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte
dans la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:\Projets\CSharp\PCM_CLUB\Main\F_Main.cs(1003):
'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci

10 réponses

Avatar
Frédéric Queudret [MS]
Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in message
news:%
Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte dans
la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003): 'PCM_CLUB.FMain.iDocName'
désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci


Avatar
Philippe
Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n
est plus visible de l autre fenetre

Frédéric Queudret [MS] a écrit :
Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in message
news:%

Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte dans
la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003): 'PCM_CLUB.FMain.iDocName'
désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci







Avatar
Frédéric Queudret [MS]
Il faut pour cela y accéder par l'instance.
Donc trouver un moyen de donner une référence de votre fenêtre primaire à la
fenêtre appelante.
Soit en positionnant une propriété, soit en surchargeant le constructeur en
passant la référence à la fenêtre appelante (parente?)
Exemple:

public ChildForm(Form parentForm) : this()

{

_parentForm = parentForm;

}

Dans la fenêtre appelante:
ChildForm myForm = new ChildForm(this);

Frédéric.

"Philippe" wrote in message
news:
Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n est
plus visible de l autre fenetre

Frédéric Queudret [MS] a écrit :
Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in message
news:%

Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte dans
la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003):
'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci








Avatar
Philippe
Merci
mais il refuse la compile de ca

FGestion aFGestion = new FGestion(this);

erreur: D:ProjetsCSharpPCM_CLUBMainF_Main.cs(92): Le mot clé this
est non disponible dans le contexte en cours


Frédéric Queudret [MS] a écrit :
Il faut pour cela y accéder par l'instance.
Donc trouver un moyen de donner une référence de votre fenêtre primaire à la
fenêtre appelante.
Soit en positionnant une propriété, soit en surchargeant le constructeur en
passant la référence à la fenêtre appelante (parente?)
Exemple:

public ChildForm(Form parentForm) : this()

{

_parentForm = parentForm;

}

Dans la fenêtre appelante:
ChildForm myForm = new ChildForm(this);

Frédéric.

"Philippe" wrote in message
news:

Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n est
plus visible de l autre fenetre

Frédéric Queudret [MS] a écrit :

Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in message
news:%


Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte dans
la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003):
'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci











Avatar
Philippe
En fait je m appercois que je n ai pas bien exprimé le pb

J ai
FMain -- > qui ouvre FGestion --> qui ouvre FListe

c est dans FListe quan, je change qq chose, je voudrais que le texte de
la status bar de FMain soit modifié

merci



Frédéric Queudret [MS] a écrit :
Il faut pour cela y accéder par l'instance.
Donc trouver un moyen de donner une référence de votre fenêtre primaire à la
fenêtre appelante.
Soit en positionnant une propriété, soit en surchargeant le constructeur en
passant la référence à la fenêtre appelante (parente?)
Exemple:

public ChildForm(Form parentForm) : this()

{

_parentForm = parentForm;

}

Dans la fenêtre appelante:
ChildForm myForm = new ChildForm(this);

Frédéric.

"Philippe" wrote in message
news:

Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n est
plus visible de l autre fenetre

Frédéric Queudret [MS] a écrit :

Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in message
news:%


Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte dans
la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003):
'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci











Avatar
Frédéric Queudret [MS]
Il faut donc transférer la référence de FMain (this) vers FGestion (ex:
private Form _parentForm)
Ensuite transférer _parentForm vers FListe lors de l'instanciation de cette
dernière.
Je vous zippe un projet d'exemple et vous l'envoie sous peu.
Frédéric.

"Philippe" wrote in message
news:
En fait je m appercois que je n ai pas bien exprimé le pb

J ai
FMain -- > qui ouvre FGestion --> qui ouvre FListe

c est dans FListe quan, je change qq chose, je voudrais que le texte de la
status bar de FMain soit modifié

merci



Frédéric Queudret [MS] a écrit :
Il faut pour cela y accéder par l'instance.
Donc trouver un moyen de donner une référence de votre fenêtre primaire à
la fenêtre appelante.
Soit en positionnant une propriété, soit en surchargeant le constructeur
en passant la référence à la fenêtre appelante (parente?)
Exemple:

public ChildForm(Form parentForm) : this()

{

_parentForm = parentForm;

}

Dans la fenêtre appelante:
ChildForm myForm = new ChildForm(this);

Frédéric.

"Philippe" wrote in message
news:

Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n est
plus visible de l autre fenetre

Frédéric Queudret [MS] a écrit :

Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in
message news:%


Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte
dans la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003):
'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci













Avatar
Paul Bacelar
This n'est pas défini dans une méthode static.

Il faut penser à lire un peu la documentation ;-).
--
Paul Bacelar


"Philippe" wrote in message
news:
Merci
mais il refuse la compile de ca

FGestion aFGestion = new FGestion(this);

erreur: D:ProjetsCSharpPCM_CLUBMainF_Main.cs(92): Le mot clé this
est non disponible dans le contexte en cours


Frédéric Queudret [MS] a écrit :
> Il faut pour cela y accéder par l'instance.
> Donc trouver un moyen de donner une référence de votre fenêtre primaire


à la
> fenêtre appelante.
> Soit en positionnant une propriété, soit en surchargeant le constructeur


en
> passant la référence à la fenêtre appelante (parente?)
> Exemple:
>
> public ChildForm(Form parentForm) : this()
>
> {
>
> _parentForm = parentForm;
>
> }
>
> Dans la fenêtre appelante:
> ChildForm myForm = new ChildForm(this);
>
> Frédéric.
>
> "Philippe" wrote in


message
> news:
>
>>Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n


est
>>plus visible de l autre fenetre
>>
>>Frédéric Queudret [MS] a écrit :
>>
>>>Bonjour,
>>>
>>>Ne serait pas à cause de la déclaration "static" de votre méthode?
>>>Pouvez-vous essayer sans le mot-clé "static".
>>>
>>>Frédéric.
>>>
>>>"Philippe" wrote in


message
>>>news:%
>>>
>>>
>>>>Bonjour
>>>>
>>>>j ai 2 fenetre : Main, Liste
>>>>de la Main j ouvre la liste en ShowModal
>>>>quand je modifie qq chose dans la liste je voudrais marquer un texte


dans
>>>>la status bar de la main
>>>>
>>>>donc dans la main je déclare une methode
>>>>
>>>>public static void doChangeIcone()
>>>>{
>>>>iDocName.Caption = "toto";
>>>>}
>>>>
>>>>et dedans le texte a mettre dans ma statusbar
>>>>
>>>>je peux bien appeler cette methode depuis ma fenetre liste, mais cette
>>>>ligne
>>>>
>>>>iDocName.Caption = "toto";
>>>>
>>>>ne passe pas a la compil erreur :
>>>>D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003):
>>>>'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu
>>>>
>>>>si je mets cette ligne dans une autre methode de la main,ca marche
>>>>
>>>>comment faire ??
>>>>
>>>>merci
>>>
>>>
>


Avatar
Philippe
Merci bcp, ca marche nickel dans mon projet et ca ma bien aider a comprendre

a+++

Frédéric Queudret [MS] a écrit :
Voila un projet et le code en pièce jointe montrant l'exemple.

Frédéric.

"Philippe" wrote in message
news:

En fait je m appercois que je n ai pas bien exprimé le pb

J ai
FMain -- > qui ouvre FGestion --> qui ouvre FListe

c est dans FListe quan, je change qq chose, je voudrais que le texte de
la status bar de FMain soit modifié

merci



Frédéric Queudret [MS] a écrit :

Il faut pour cela y accéder par l'instance.
Donc trouver un moyen de donner une référence de votre fenêtre primaire à
la
fenêtre appelante.
Soit en positionnant une propriété, soit en surchargeant le constructeur
en
passant la référence à la fenêtre appelante (parente?)
Exemple:

public ChildForm(Form parentForm) : this()

{

_parentForm = parentForm;

}

Dans la fenêtre appelante:
ChildForm myForm = new ChildForm(this);

Frédéric.

"Philippe" wrote in message
news:


Oui j ai essayé, la ca compile, mais si j enleve static, ma methode n est
plus visible de l autre fenetre

Frédéric Queudret [MS] a écrit :


Bonjour,

Ne serait pas à cause de la déclaration "static" de votre méthode?
Pouvez-vous essayer sans le mot-clé "static".

Frédéric.

"Philippe" wrote in
message
news:%



Bonjour

j ai 2 fenetre : Main, Liste
de la Main j ouvre la liste en ShowModal
quand je modifie qq chose dans la liste je voudrais marquer un texte
dans
la status bar de la main

donc dans la main je déclare une methode

public static void doChangeIcone()
{
iDocName.Caption = "toto";
}

et dedans le texte a mettre dans ma statusbar

je peux bien appeler cette methode depuis ma fenetre liste, mais cette
ligne

iDocName.Caption = "toto";

ne passe pas a la compil erreur :
D:ProjetsCSharpPCM_CLUBMainF_Main.cs(1003):
'PCM_CLUB.FMain.iDocName' désigne 'champ' où 'classe' était attendu

si je mets cette ligne dans une autre methode de la main,ca marche

comment faire ??

merci
















Avatar
Philippe
Je lis, je lis, (ai recu livre : 1300 pages long, long)
mais la, la methode n etait pas static

merci

Paul Bacelar a écrit :
This n'est pas défini dans une méthode static.

Il faut penser à lire un peu la documentation ;-).


Avatar
Paul Bacelar
Vous ne pouvez pas être dans une méthode d'instance (non static).

A moins d'être dans des constructeurs statics implicites (initialisation de
variables statics hors de toutes méthodes (visible)) je ne vois que des
méthodes statics qui ne définissent pas la valeur du mot clé this en C#.
--
Paul Bacelar


"Philippe" wrote in message
news:
Je lis, je lis, (ai recu livre : 1300 pages long, long)
mais la, la methode n etait pas static

merci

Paul Bacelar a écrit :
> This n'est pas défini dans une méthode static.
>
> Il faut penser à lire un peu la documentation ;-).