Message d'erreur lors du lancement du programme.

cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010 - 12 févr. 2006 à 12:36
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 12 févr. 2006 à 16:53
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

minimarch Messages postés 31 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 février 2006
12 févr. 2006 à 16:07
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'
0
minimarch Messages postés 31 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 février 2006
12 févr. 2006 à 16:09
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'
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
12 févr. 2006 à 16:53
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 !?
0