Pourquoi ma ListBox ne fonctionne qu'à partir d'une certaine valeur ?

Résolu
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 - 6 mars 2011 à 21:20
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 - 10 mars 2011 à 14:59
Bonjour,
J'ai une listbox composée de valeurs comprises entre 0.00 et -2.00 au pas de 0.01 (centième).
Cette listbox doit, lorsqu'on clique sur une de ces valeurs, effectuer 5 manipulations sur des textbox A,B,C,D,E.
Mon souci est le suivant :
- Pour les valeurs comprises entre -1.01 et -2.00 ==> Tout fonctionne impeccablement
- Pour les valeurs comprises entre 0.00 et -1.00 compris ==> rien ne va

J'ai fait ceci
' construction de la listbox des centièmes et affichage de -1.00 par defaut en haut de la listbox
        ListX.Items.Clear()
        ListX.Items.Add(" 0,00")
        For i = -0.01 To -2.0 Step -0.01
            ListX.Items.Add(i.ToString("0.00"))
        Next i
        ListX.TopIndex = 100

'début des calculs sur clic d'une valeur de la listBox
Private Sub ListX_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListX.Click
TextX.Text = Double.Parse(ListQ.SelectedItem.ToString().Replace(".", ",")).ToString("0.00") 'TextX.Text est le nombre choisi dans la liste                 
Select Case Math.Abs(nombre)    ' on ne tient pas compte du signe
                    Case 0.0# To 1.0#
                        A.Text = "0,00"
                        B.Text = "0,00"
                        C.Text = "0,00"
                        D.Text = "0,00"
                        E.Text = -0.00"
                    Case -1.01 To -1.09
                        A.Text = "0,90"
                        B.Text = "0,90"
                        C.Text = "-0,95"
                        D.Text = "-0,95"
                        E.Text = ((Double.Parse(TextX.Text)) + Double.Parse(A.Text.Replace(".", ","))).ToString("0.00")
.
.
                        Case -1.91 To -2.00
                        A.Text = "0,10"
                        B.Text = "0,10"
                        C.Text = "-0,15"
                        D.Text = "-0,15"
                        E.Text = ((Double.Parse(TextX.Text)) + Double.Parse(A.Text.Replace(".", ","))).ToString("0.00")
                       


Autrement dit : entre Zéro et -1.00 ==> A,B,C,D,E sont fixes
Après, A,B,C,D sont Fixes et E est la différence entre La valeur choisie dans ma ListX et la valeur A.

Comment se fait il qu'entre 0.00 et -1.00, rien ne s'affiche pour E et que A,B,C,D aient des valeurs parfois fantasques

Merci

24 réponses

Profil bloqué
10 mars 2011 à 13:36
Salut ShayW

Convert.ToDouble n'accepte pas le point dans la zone de texte pour la conversion

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
10 mars 2011 à 13:50
chacun à le séparateur décimal différent
peut etre comme ça

Dim sp As String
sp = 1 / 2
sp = sp.Substring(1, 1)
TextX.Text = Double.Parse(ListX.SelectedItem.ToString().Replace(".", sp)).ToString("0.00")
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
10 mars 2011 à 13:53
et alors aussi ToString("0.00")
problème non
0
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
10 mars 2011 à 14:59
Bon, visiblement cela fonctionne en gardant la valeur absolue, j'y suis allé pas a pas et j'ai suivi vos conseils. Cela fonctionne bien maintenant

Merci beaucoup a vous trois pour l'aide
0
Rejoignez-nous