Message d'erreur lors du lancement du programme.

Signaler
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
3 octobre 2010
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
Bonjour à tous

Je suis en train de tester Visual Basic 2005 avec un petit programme de conversion Euro et Franc

Voici mon petit code

Public
Class Convert



Dim Mtt
As
Double



Dim Résultat
As
Double



Dim MySTR
As
String



Private
Sub EuroBoutton_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles EuroBoutton.Click


Mtt = TextMontant.Text


Résultat = Mtt / 6.55957


MySTR = Format(Résultat,
"###0.00")


TextRésultat.Text = MySTR



End
Sub



Private
Sub FrancButton_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles FrancButton.Click


Mtt = TextMontant.Text


Résultat = Mtt * 6.55957


MySTR = Format(Résultat,
"###0.00")


TextRésultat.Text = MySTR



End
Sub



Private
Sub TextMontant_KeyPress(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles TextMontant.KeyPress



If e.KeyChar = Chr(System.Windows.Forms.Keys.Back)
Then



Exit
Sub



ElseIf e.KeyChar = Chr(46)
Then


e.KeyChar = Chr(44)



ElseIf e.KeyChar = Chr(44)
Then



Exit
Sub



ElseIf e.KeyChar > Chr(57)
Then


e.KeyChar = Chr(0)



ElseIf e.KeyChar <= Chr(48)
Then


e.KeyChar = Chr(0)



End
If



End
Sub



Private
Sub Convert_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load


TextMontant.Focus()



End
Sub


End
Class


A chaque fois que je lance le programme, j'ai les messages suivants qui apparaissent.
Pouvez-vous m'expliquer ce qui se passe ?

Une exception de première chance de type 'System.FormatException' s'est produite dans Microsoft.VisualBasic.dll


Une exception de première chance de type 'System.FormatException' s'est produite dans Microsoft.VisualBasic.dll


Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dLL

Merci par avance pour vos réponses.

3 réponses

Messages postés
31
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
12 février 2006

Salut,



je ne t'apprendrais rien en disant que c'est une erreur de formatage ;-)

Commence déjà par regarder sur quelle ligne se produit l'erreur (un
petit debugage en mode pas à pas te serait à mon avis d'un grand
secours). Tu pourras notamment en profiter pour voir la valeur de
chacune des variables.



Petit détail: es tu sûr que Visual Basic apprecie les noms de variables
avec accent ? Je ne sais pas si c'est grave, mais la convention veut
que l'on ne mette pas d'accent...

MiniMarch'
Messages postés
31
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
12 février 2006

Je viens de relire ton code rapidement:



au lieu de faire Mtt = TextMontant.Text

fait plutôt : Mtt = CDbl(TextMontant.text)



Je ne pense pas que VB fasse une concersion automatiquement


MiniMarch'
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,


En vb.net, si tu as l'option Strict On (par défaut), tu ne peux faire des conversions implicites du genre :


Mtt = TextMontant.Text
Mtt étant du double


Mtt = ctype(TextMontant.Text, double)
serait plus judicieux, l'équivalent du cdbl de vb6.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?