auto refresh a text box

Status
Niet open voor verdere reacties.

Schipperjte

Gebruiker
Lid geworden
24 jan 2006
Berichten
212
Hoi,

Heb 3 textboxen

Code:
Private Sub TextBox7_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox7.MouseLeave

    End Sub

    Private Sub TextBox8_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox8.MouseLeave

    End Sub

     



 
    Private Sub TextBox3_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
        TextBox3.Text = TextBox8.Text / TextBox7.Text
    End Sub

Dit werkt Textbox 8 delen door Textbox 7

Maar welke event moet ik gebruiken om de uitkomst automatisch in Textbox 3 telaten komen ?
dus niet met click of mouseover enz

maar als ik deze 2 textboxen invul ,Textbox 3 gelijk de uitkomst geeft



Bas
 
In ieder geval niet het MouseLeave event. Die zowiezo geen fluit doen omdat die subs leeg zijn.

Je moet het TextChanged event gebruiken voor textbox 7 en 8. Maar pas op, je zult wel een if statement moeten gebruiken om ervoor te zorgen dat de berekening alleen wordt uitgevoerd als beide textboxen niet leeg zijn en een getal bevatten.
 
Ik heb het veranderd , ja natuurlijk gelijk een vraag

Als ik een letter invoer dan geeft hij geen uitkomst , dus heb dit gedaan met textbox

Code:
If TextBox3.Text = "" Then
            Exit Sub
        End If
        If IsNumeric(TextBox3.Text) Then
            Exit Sub
        Else
            MsgBox(" Alleen cijers invullen!")
            TextBox3.Text = ("")

        End If
maar ,

Hoe krijg ik het voor elkaar om 4 cijfers achter de komma te laten zien

TextBox3.Text = Format(Resultaat, "##0.0000")

Dit geeft een fout melding

Ik gebruik Visual Basic 2010
 
Laatst bewerkt:
Hallo,

kun je niet beter dit doen:

Code:
private sub TB7_Textchanged() Handles TextBox7.TextChanged
 rekenUit()
end sub
private sub TB8_Textchanged() Handles TextBox8.TextChanged
 rekenUit()
end sub

Private Sub rekenUit()
 try 

  dim teller as double = textbox7.text
  dim noemer as double = textbox8.text
  dim uitkomst as double = teller / noemer
  dim afronden as integer = uitkomst * 1000 'dit getal geeft aan hoe goed hij moet afronden (in dit geval op 1/1000ste)
  uitkomst = afronden / 1000 'zorg dat deze gelijk is aan die de regel hierboven
  textbox3.text = uitkomst

 catch ex as exception

  'msgbox("het is niet gelukt om de berekening uit te voeren") 'is mogelijk maar is een beetje onhandig na elke letter een msgbox te geven

 end try
end sub

ik heb het zelf niet getest maar het werkt volgens mij wel:d

mvg rowano
 
Laatst bewerkt:
Het werkt , bedankt :thumb:

Heb alleen nog 1 cijfer achter de komma erbij gedaan , maar dat was natuurlijk een makkie


Tekstbox heb ik weg gelaten



Bas
 
Hmm werkt goed alleen als er een uitkomst is van bv 1.5000 dan geeft hij 1.5 aan

1.0000 dan wordt het 1
Dat is niet de bedoeling de nullen moeten wel zichtbaar blijven

hoe pas ik deze aan ? denk zelf met If iets uitkomst eindigen op 0 dan wel 0 weergeven

Code:
Private sub TB7_Textchanged() Handles TextBox7.TextChanged
 rekenUit()
end sub
private sub TB8_Textchanged() Handles TextBox8.TextChanged
 rekenUit()
end sub

Private Sub rekenUit()
 try 

  dim teller as double = textbox7.text
  dim noemer as double = textbox8.text
  dim uitkomst as double = teller / noemer
  dim afronden as integer = uitkomst * 10000 'dit getal geeft aan hoe goed hij moet afronden (in dit geval op 1/10000ste)
  uitkomst = afronden / 10000 'zorg dat deze gelijk is aan die de regel hierboven
  textbox3.text = uitkomst

 catch ex as exception

   

 end try
end sub



Bas
 
hallo,

wel, ik denk dat je dan het beste over kunt gaan op string:

Code:
dim txt as string = uitkomst 
for a = 0 to XXXX - split(txt,".")(1).lenght 'XXX = aantal decimalen (denk ik zo)
 txt &= "0"
next

ik denk dat het werkt, maar heb het wederom niet getest...

maar het wordt dus in totaal :

Code:
Private sub TB7_Textchanged() Handles TextBox7.TextChanged
 rekenUit()
end sub
private sub TB8_Textchanged() Handles TextBox8.TextChanged
 rekenUit()
end sub

Private Sub rekenUit()
 try 

  dim teller as double = textbox7.text
  dim noemer as double = textbox8.text
  dim uitkomst as double = teller / noemer
  dim afronden as integer = uitkomst * 10000 'dit getal geeft aan hoe goed hij moet afronden (in dit geval op 1/10000ste)
  uitkomst = afronden / 10000 'zorg dat deze gelijk is aan die de regel hierboven
  dim txt as string = uitkomst 
  for a = 0 to 4 - split(txt,".")(1).lenght
   txt &= "0"
  next
  textbox3.text = txt

 catch ex as exception

   

 end try
end sub

mvg Rowano:d
 
Laatst bewerkt:
ik krijg een fout melding
For a = 0 To 4 - Split(txt, ".")(1).lenght

Error 1 'lenght' is not a member of 'String'.
 
sorry typ-foutje :eek: (m'n engels is niet al te goed:D)

dit is hem wel:
Code:
For a = 0 To 4 - Split(txt, ".")(1).Length
\

hoop dat ie nu werkt:p
 
Hoi, ja klopt zag het toen ik later er weer naar keek.
zag nog iets , hij rekent natuurlijk goed en is ook in gebruik .

Maar vandaag kwam de uitkomst op 0,9200 en hij gaf 0,92 aan

Hoe kan ik instellen dat ongeacht de uitkomst altijd 4 achter de komma weergeeft .

Als hij 1 is geeft hij 1,0000 aan dat is geregeld . maar 0,92 nog niet.

Dacht misschien iets in de zin van If

dit had ik bedacht maar werkt niet

Code:
 Private Sub rekenUit()
        Try

            Dim teller As Double = TextBox30.Text
            Dim noemer As Double = TextBox32.Text
            Dim uitkomst As Double = teller / noemer

            Dim afronden As Integer = uitkomst * 10000 'dit getal geeft aan hoe goed hij moet afronden (in dit geval op 1/10000ste)
            uitkomst = afronden / 10000 'zorg dat deze gelijk is aan die de regel hierboven
            Dim txt As String = uitkomst
            For a = 0 To 1 - Split(txt, ".")(0).Length


                txt &= ",0000"

   If txt="0.00" Then "0.0000"


            Next
            TextBox31.Text = txt

        Catch ex As Exception



        End Try
    End Sub


If txt="0.00" Then "0.0000" dit werkt niet

Iemand een idee dat hij ook die andere nullen aangeeft achter bv 0.92
kan natuurlijk ook een andere uitkomst zijn.


ben eigenlijk al heel blij dat dit werkt maar het is nog niet helemaal af

Bas
 
hallo,
ik heb een paar foutjes in uw code gevonden:
dit is de nieuwe: (ik heb ook een try statement toegevoegd(blauw))
Code:
 Private Sub rekenUit()
        Try

            Dim teller As Double = TextBox30.Text
            Dim noemer As Double = TextBox32.Text
            Dim uitkomst As Double = teller / noemer

            Dim afronden As Integer = uitkomst * 10000 'dit getal geeft aan hoe goed hij moet afronden (in dit geval op 1/10000ste)
            uitkomst = afronden / 10000 'zorg dat deze gelijk is aan die de regel hierboven
            Dim txt As String = uitkomst
            [COLOR="Blue"]try[/COLOR]
                 For a = 0 To [COLOR="Red"][B]4[/B][/COLOR] - Split(txt, ".")([COLOR="Red"][B]1[/B][/COLOR]).Length  [COLOR="DarkGreen"] 'u had 1 ipv 4 en bij de 2de 0 ipv 1[/COLOR]
                      txt &= "0"
                 Next
            [COLOR="Blue"]Catch ex As Exception
                 txt &= ".0000"
            End Try[/COLOR]

            TextBox[COLOR="Red"][B]3[/B][/COLOR].Text = txt [COLOR="DarkGreen"] 'u had 31 ipv 3[/COLOR]

        Catch ex As Exception
        End Try
    End Sub

hopelijk werkt het nu...
hou me op de hoogte:D

mvg rowano
 
Hoi,

Ik heb het veranderd en geeft nu deze uitkomst

0,999.0000

dit zou dan 0,9990 moeten worden of bij een andere uitkomst 0,9900
( deze is wel goed 1,0000)

Het is een soortlijk gewicht van een bepaalde soort olie die ook die nullen moet weergeven ,anders staat het verkeerd op de papieren .
 
hallo

geeft hij 0,999.0000
of 0.999.0000?

(het verschil is de komma of de punt)
is een belangrijk verschil...

groetjes rowano
 
ik weet niet maar is dit niet makkelijker

Code:
Private Sub rekenUit()
        Try
            Dim teller As Double = TextBox1.Text
            Dim noemer As Double = TextBox2.Text
            Dim uitkomst As Double = teller / noemer
            TextBox3.Text = FormatNumber(uitkomst, 5)

        Catch ex As Exception

        End Try
 
Laatst bewerkt:
Goedeavond

Het is 0,999.0000 komma punt

Ben nog even aan het puzzelen geweest maar kreeg het niet voor elkaar

De oplossing van Old Hippy werkt


Heren bedankt :thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan