Impossible d'effectuer un cast d'un objet de type 'System.String' en type 'Syste

gbawar Messages postés 29 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 15 mars 2007 - 12 nov. 2006 à 12:31
gbawar Messages postés 29 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 15 mars 2007 - 12 nov. 2006 à 14:56
Bonjour,
J'ai cette erreur qui apparait :"Impossible d'effectuer un cast d'un objet de type 'System.String' en type 'System.Windows.Forms.Label'." lorsque la compilation du programme arrive à une certaine variable.

Voici tout les codes liais a cette variable:
decalaration:
Public energie As Object
initialisation:
energie = 0
affectation liais a une textbox:
joulebox.Text = Replace(joulebox.Text, ".", " ,")
Energie = CType(joulebox.Text, Object)
calcul (semble lourd mais ca fonction nickel :-D):
  If Temps_Secondes = 0 And energie <> 0 And Puissance <> 0 Then
            't=W/P
            Temps_Secondes = energie / Puissance
        End If
        If energie = 0 And Puissance <> 0 And Temps_Secondes <> 0 Then
            'W=Pt
            energie = Puissance * Temps_Secondes
        End If
        If Puissance = 0 And energie <> 0 And Temps_Secondes <> 0 Then
            'P=W/t
            Puissance = energie / Temps_Secondes
        End If
        If Résistance = 0 And energie <> 0 And Temps_Secondes <> 0 And Courant <> 0 Then
            'R=W/I²t
            Résistance = energie / ((Courant * Courant) * Temps_Secondes)
        End If
        If Courant = 0 And energie <> 0 And Temps_Secondes <> 0 And Résistance <> 0 Then
            'I=Racine(W/Rt)
            Courant = Math.Sqrt(energie / (Temps_Secondes * Résistance))
        End If
        If Temps_Secondes = 0 And energie <> 0 And Courant <> 0 And Résistance <> 0 Then
            't=W/RI²
            Temps_Secondes = energie / (Résistance * (Courant * Courant))
        End If
        If Temps_Secondes = 0 And Courant <> 0 And Temps_Secondes <> 0 And Résistance <> 0 Then
            'W=RI²t
            energie = Résistance * (Courant * Courant) * Temps_Secondes
        End If

affichage :
joulebox.Text = FormatNumber(Energie, 5)

Le truc c'est que je vois pas pourquoi ca plante, car les autre variable sont déclaré pareil et les calcul sont casi identique.
donc j'aimerai si quelqu'un sais coment je peux réparait se probléme qui a l'heure actuel me bloque pas mal.
Merci d'avance pour l'iade que l'on pourra m'apporté.
Cordialement.

5 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
12 nov. 2006 à 12:39
Salut, Déjà remplace tout les IF par un Select Case


De plus tu est en VB.net avec ton message System.String


un label contient une propriété String nommée Text


Si tu as ce message c'est que tu as mis comme ligne un truc comme ceci : TextBox1 = "totototo"


alors que tu aurais du mettre : TextBox1.Text = "totototo"



Chris...


Web :
Firstruner
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 nov. 2006 à 13:37
decalaration:


Public energie As Object
....
Energie = CType(joulebox.Text, Object)

Déjà, tu essaye de convertir une chaine de caractère (proprieté .Text) en objet. Ce qui n'st pas bon

Et au vue du reste de ton code ta variable energie ne devrait etre ni un object, ni même une chaine de caractère mais un nombre puisque tu t'en sert pour des calcul

D'ailleurs avec toutes les convertions implicites que tu impose dans ton code, je ne comprend pas que VB.Net ne gueule qu'au moment de l'execution.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
gbawar Messages postés 29 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 15 mars 2007
12 nov. 2006 à 14:20
j'ai mis ma variable energie en decimale et j'ai ca comme erreur : Erreur    2    Une valeur de type 'Decimal' ne peut pas être convertie en 'System.Windows.Forms.Label'.    C:\Documents and Settings\Guillaume\Mes documents\Regime\Regime\Regime_Continue.vb    43    19    Regime
. donc comment gerer ce probleme .
Avant j'etais en Object et sa fonctionner et depuis quelque ligne de plus sa fonctionne plus .
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 nov. 2006 à 14:55
L'erreur n'est pas dans ce bout de code. Tu utilise ta variable ailleurs dans ton programme et tu essaye de l'affectée à un controle Label.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbawar Messages postés 29 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 15 mars 2007
12 nov. 2006 à 14:56
Je viens de reprendre la variable avec un autre nom, et autre affectation est sa fonctionne.
Merci pour vos aides
.
0
Rejoignez-nous