OVH Cloud OVH Cloud

InvalidCastexception

6 réponses
Avatar
linux_pac
Bonjour, j'ai un problème de cast


l'erreur qu'il me donne

Impossible d'effectuer un cast d'un objet de type
'System.Windows.Forms.ToolStrip en type System.Windows.Forms.ToolStripButton

voici mon code

private void toolbar_Click(object sender, EventsArgs e)
{
FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
}


private void FormatText(string Buttontext)
{
Font police = this.rtbbText.SelectionFont;
FontStyle styleApplic;

switch(ButtonText)
{
case "btnBold":
if(this.rtbText.SelectionFont.Bold == true)
styleApplic = FontStyle.Regular;
else
styleApplic = FontStyle.Bold;
break;
}
}


Un peu d'aide merci

6 réponses

Avatar
c2i-Richard Clark
Normal, ton sender c'est le toolStripBar (mets un point d'arret sur ton cast
et regarde la valeur de sender).
Ton ToolStripButton a un évènement Click qui lui est propre

--
Richard Clark - MVP .NET
http://www.project-hoshimi.com
http://www.c2i.fr
"" a écrit
dans le message de news:

Bonjour, j'ai un problème de cast


l'erreur qu'il me donne

Impossible d'effectuer un cast d'un objet de type
'System.Windows.Forms.ToolStrip en type
System.Windows.Forms.ToolStripButton

voici mon code

private void toolbar_Click(object sender, EventsArgs e)
{
FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
}


private void FormatText(string Buttontext)
{
Font police = this.rtbbText.SelectionFont;
FontStyle styleApplic;

switch(ButtonText)
{
case "btnBold":
if(this.rtbText.SelectionFont.Bold == true)
styleApplic = FontStyle.Regular;
else
styleApplic = FontStyle.Bold;
break;
}
}


Un peu d'aide merci






Avatar
Fabien Bezagu
Il est tout à fait logique qu'il y ait un problème de cast, sachant qu'un
ToolStrip n'est pas un ToolStripButton. Or sender doit être le ToolStrip. Je
ne suis pas sûr que l'évènement Click soit le bon. Je ne sais pas quelle
version du framework tu utilises mais avec la 2.0, il y a un évènement
ItemClicked. Sur le 1.1, je ne sais pas.

Fabien

"" a écrit
dans le message de news:

Bonjour, j'ai un problème de cast


l'erreur qu'il me donne

Impossible d'effectuer un cast d'un objet de type
'System.Windows.Forms.ToolStrip en type
System.Windows.Forms.ToolStripButton

voici mon code

private void toolbar_Click(object sender, EventsArgs e)
{
FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
}


private void FormatText(string Buttontext)
{
Font police = this.rtbbText.SelectionFont;
FontStyle styleApplic;

switch(ButtonText)
{
case "btnBold":
if(this.rtbText.SelectionFont.Bold == true)
styleApplic = FontStyle.Regular;
else
styleApplic = FontStyle.Bold;
break;
}
}


Un peu d'aide merci






Avatar
linux_pac
J'ai fait les recherche comme vous m'avez expliquer
le problème de cast est résolu, je crois

code

private void toolbar_itemClicked(object sender,
toolStripItemClickedEventArgs e)
{
FormatText(((Toolstrip)sender).Name)
}

mais rien ne fonctionne
est-ce ma procédure FormatText qui est foireuse

privatez void FormatText(string ButtonText)
{
Font police = this.rtbText.SelectionFont;
FontStyle styleApplic;

switch "btnBold":
{
If(this.rtbText.SelectionFont.Bold == true)
styleApplic = FontStyle.Regular;
else
styleApplic = FontStyle.Bold;
break;
}
}

Débutant en C#,je vais expliquer en français ce que je veux faire,
je voudrais regrouper tous les toolStripButton de ma toolstrip("toolbar")
dans un switch évitant ainsi de créer une procédure pour chaque
toolstripbutton.

merci de votre patience.


"Fabien Bezagu" a écrit :

Il est tout à fait logique qu'il y ait un problème de cast, sachant qu'un
ToolStrip n'est pas un ToolStripButton. Or sender doit être le ToolStrip. Je
ne suis pas sûr que l'évènement Click soit le bon. Je ne sais pas quelle
version du framework tu utilises mais avec la 2.0, il y a un évènement
ItemClicked. Sur le 1.1, je ne sais pas.

Fabien

"" a écrit
dans le message de news:

> Bonjour, j'ai un problème de cast
>
>
> l'erreur qu'il me donne
>
> Impossible d'effectuer un cast d'un objet de type
> 'System.Windows.Forms.ToolStrip en type
> System.Windows.Forms.ToolStripButton
>
> voici mon code
>
> private void toolbar_Click(object sender, EventsArgs e)
> {
> FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
> }
>
>
> private void FormatText(string Buttontext)
> {
> Font police = this.rtbbText.SelectionFont;
> FontStyle styleApplic;
>
> switch(ButtonText)
> {
> case "btnBold":
> if(this.rtbText.SelectionFont.Bold == true)
> styleApplic = FontStyle.Regular;
> else
> styleApplic = FontStyle.Bold;
> break;
> }
> }
>
>
> Un peu d'aide merci
>
>
>
>





Avatar
Fabien Bezagu
Il manque quelques éléments pour répondre : quelle version du framework
utilisez-vous ? Qu'est-ce qui ne fonctionne pas ? Est-ce que l'évènement est
bien déclenché ? La méthode FormatText est-elle bien appelé ?

Essayez de tracer le déroulement du programme en mettant des points d'arrêt,
ça nous aidera.

Je vois quand même quelques problèmes :

- le name du sender sera toujours le "toolbar" ! Il faut travailler avec la
propriété ToolStripItem du paramètre ToolStripItemClickedEventArgs ou,
comme l'a suggéré Richard Clark, gérer l'évènement Click du bouton.

- la syntaxe du switch n'est pas bonne :

switch (ButtonText)
{
case "btnBold":
styleApplic = this.rtbText.SelectionFont.Bold ? FontStyle.Regular :
FontStyle.Bold;
// Petite simplification du if mais il fonctionne tel quel
break;
}

Fabien

"" a écrit
dans le message de news:

J'ai fait les recherche comme vous m'avez expliquer
le problème de cast est résolu, je crois

code

private void toolbar_itemClicked(object sender,
toolStripItemClickedEventArgs e)
{
FormatText(((Toolstrip)sender).Name)
}

mais rien ne fonctionne
est-ce ma procédure FormatText qui est foireuse

privatez void FormatText(string ButtonText)
{
Font police = this.rtbText.SelectionFont;
FontStyle styleApplic;

switch "btnBold":
{
If(this.rtbText.SelectionFont.Bold == true)
styleApplic = FontStyle.Regular;
else
styleApplic = FontStyle.Bold;
break;
}
}

Débutant en C#,je vais expliquer en français ce que je veux faire,
je voudrais regrouper tous les toolStripButton de ma toolstrip("toolbar")
dans un switch évitant ainsi de créer une procédure pour chaque
toolstripbutton.

merci de votre patience.


"Fabien Bezagu" a écrit :

Il est tout à fait logique qu'il y ait un problème de cast, sachant qu'un
ToolStrip n'est pas un ToolStripButton. Or sender doit être le ToolStrip.
Je
ne suis pas sûr que l'évènement Click soit le bon. Je ne sais pas quelle
version du framework tu utilises mais avec la 2.0, il y a un évènement
ItemClicked. Sur le 1.1, je ne sais pas.

Fabien

"" a écrit
dans le message de news:

> Bonjour, j'ai un problème de cast
>
>
> l'erreur qu'il me donne
>
> Impossible d'effectuer un cast d'un objet de type
> 'System.Windows.Forms.ToolStrip en type
> System.Windows.Forms.ToolStripButton
>
> voici mon code
>
> private void toolbar_Click(object sender, EventsArgs e)
> {
> FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
> }
>
>
> private void FormatText(string Buttontext)
> {
> Font police = this.rtbbText.SelectionFont;
> FontStyle styleApplic;
>
> switch(ButtonText)
> {
> case "btnBold":
> if(this.rtbText.SelectionFont.Bold == true)
> styleApplic = FontStyle.Regular;
> else
> styleApplic = FontStyle.Bold;
> break;
> }
> }
>
>
> Un peu d'aide merci
>
>
>
>







Avatar
linux_pac
La version du framework est 2.0

"Fabien Bezagu" a écrit :

Il manque quelques éléments pour répondre : quelle version du framework
utilisez-vous ? Qu'est-ce qui ne fonctionne pas ? Est-ce que l'évènement est
bien déclenché ? La méthode FormatText est-elle bien appelé ?

Essayez de tracer le déroulement du programme en mettant des points d'arrêt,
ça nous aidera.

Je vois quand même quelques problèmes :

- le name du sender sera toujours le "toolbar" ! Il faut travailler avec la
propriété ToolStripItem du paramètre ToolStripItemClickedEventArgs ou,
comme l'a suggéré Richard Clark, gérer l'évènement Click du bouton.

- la syntaxe du switch n'est pas bonne :

switch (ButtonText)
{
case "btnBold":
styleApplic = this.rtbText.SelectionFont.Bold ? FontStyle.Regular :
FontStyle.Bold;
// Petite simplification du if mais il fonctionne tel quel
break;
}

Fabien

"" a écrit
dans le message de news:

> J'ai fait les recherche comme vous m'avez expliquer
> le problème de cast est résolu, je crois
>
> code
>
> private void toolbar_itemClicked(object sender,
> toolStripItemClickedEventArgs e)
> {
> FormatText(((Toolstrip)sender).Name)
> }
>
> mais rien ne fonctionne
> est-ce ma procédure FormatText qui est foireuse
>
> privatez void FormatText(string ButtonText)
> {
> Font police = this.rtbText.SelectionFont;
> FontStyle styleApplic;
>
> switch "btnBold":
> {
> If(this.rtbText.SelectionFont.Bold == true)
> styleApplic = FontStyle.Regular;
> else
> styleApplic = FontStyle.Bold;
> break;
> }
> }
>
> Débutant en C#,je vais expliquer en français ce que je veux faire,
> je voudrais regrouper tous les toolStripButton de ma toolstrip("toolbar")
> dans un switch évitant ainsi de créer une procédure pour chaque
> toolstripbutton.
>
> merci de votre patience.
>
>
> "Fabien Bezagu" a écrit :
>
>> Il est tout à fait logique qu'il y ait un problème de cast, sachant qu'un
>> ToolStrip n'est pas un ToolStripButton. Or sender doit être le ToolStrip.
>> Je
>> ne suis pas sûr que l'évènement Click soit le bon. Je ne sais pas quelle
>> version du framework tu utilises mais avec la 2.0, il y a un évènement
>> ItemClicked. Sur le 1.1, je ne sais pas.
>>
>> Fabien
>>
>> "" a écrit
>> dans le message de news:
>>
>> > Bonjour, j'ai un problème de cast
>> >
>> >
>> > l'erreur qu'il me donne
>> >
>> > Impossible d'effectuer un cast d'un objet de type
>> > 'System.Windows.Forms.ToolStrip en type
>> > System.Windows.Forms.ToolStripButton
>> >
>> > voici mon code
>> >
>> > private void toolbar_Click(object sender, EventsArgs e)
>> > {
>> > FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
>> > }
>> >
>> >
>> > private void FormatText(string Buttontext)
>> > {
>> > Font police = this.rtbbText.SelectionFont;
>> > FontStyle styleApplic;
>> >
>> > switch(ButtonText)
>> > {
>> > case "btnBold":
>> > if(this.rtbText.SelectionFont.Bold == true)
>> > styleApplic = FontStyle.Regular;
>> > else
>> > styleApplic = FontStyle.Bold;
>> > break;
>> > }
>> > }
>> >
>> >
>> > Un peu d'aide merci
>> >
>> >
>> >
>> >
>>
>>
>>





Avatar
Fabien Bezagu
C'est un bon début de nous dire cela mais il faudrait penser à être un peu
plus prolixe si vous voulez une aide adaptée...

"" a écrit
dans le message de news:

La version du framework est 2.0

"Fabien Bezagu" a écrit :

Il manque quelques éléments pour répondre : quelle version du framework
utilisez-vous ? Qu'est-ce qui ne fonctionne pas ? Est-ce que l'évènement
est
bien déclenché ? La méthode FormatText est-elle bien appelé ?

Essayez de tracer le déroulement du programme en mettant des points
d'arrêt,
ça nous aidera.

Je vois quand même quelques problèmes :

- le name du sender sera toujours le "toolbar" ! Il faut travailler avec
la
propriété ToolStripItem du paramètre ToolStripItemClickedEventArgs ou,
comme l'a suggéré Richard Clark, gérer l'évènement Click du bouton.

- la syntaxe du switch n'est pas bonne :

switch (ButtonText)
{
case "btnBold":
styleApplic = this.rtbText.SelectionFont.Bold ? FontStyle.Regular
:
FontStyle.Bold;
// Petite simplification du if mais il fonctionne tel quel
break;
}

Fabien

"" a écrit
dans le message de news:

> J'ai fait les recherche comme vous m'avez expliquer
> le problème de cast est résolu, je crois
>
> code
>
> private void toolbar_itemClicked(object sender,
> toolStripItemClickedEventArgs e)
> {
> FormatText(((Toolstrip)sender).Name)
> }
>
> mais rien ne fonctionne
> est-ce ma procédure FormatText qui est foireuse
>
> privatez void FormatText(string ButtonText)
> {
> Font police = this.rtbText.SelectionFont;
> FontStyle styleApplic;
>
> switch "btnBold":
> {
> If(this.rtbText.SelectionFont.Bold == true)
> styleApplic = FontStyle.Regular;
> else
> styleApplic = FontStyle.Bold;
> break;
> }
> }
>
> Débutant en C#,je vais expliquer en français ce que je veux faire,
> je voudrais regrouper tous les toolStripButton de ma
> toolstrip("toolbar")
> dans un switch évitant ainsi de créer une procédure pour chaque
> toolstripbutton.
>
> merci de votre patience.
>
>
> "Fabien Bezagu" a écrit :
>
>> Il est tout à fait logique qu'il y ait un problème de cast, sachant
>> qu'un
>> ToolStrip n'est pas un ToolStripButton. Or sender doit être le
>> ToolStrip.
>> Je
>> ne suis pas sûr que l'évènement Click soit le bon. Je ne sais pas
>> quelle
>> version du framework tu utilises mais avec la 2.0, il y a un évènement
>> ItemClicked. Sur le 1.1, je ne sais pas.
>>
>> Fabien
>>
>> "" a
>> écrit
>> dans le message de news:
>>
>> > Bonjour, j'ai un problème de cast
>> >
>> >
>> > l'erreur qu'il me donne
>> >
>> > Impossible d'effectuer un cast d'un objet de type
>> > 'System.Windows.Forms.ToolStrip en type
>> > System.Windows.Forms.ToolStripButton
>> >
>> > voici mon code
>> >
>> > private void toolbar_Click(object sender, EventsArgs e)
>> > {
>> > FormatText(((ToolStripButton)sender).Name); // c'est ici l'erreur
>> > }
>> >
>> >
>> > private void FormatText(string Buttontext)
>> > {
>> > Font police = this.rtbbText.SelectionFont;
>> > FontStyle styleApplic;
>> >
>> > switch(ButtonText)
>> > {
>> > case "btnBold":
>> > if(this.rtbText.SelectionFont.Bold == true)
>> > styleApplic = FontStyle.Regular;
>> > else
>> > styleApplic = FontStyle.Bold;
>> > break;
>> > }
>> > }
>> >
>> >
>> > Un peu d'aide merci
>> >
>> >
>> >
>> >
>>
>>
>>