Gå til innhold

Hjelp med Labels og text :)


Anbefalte innlegg

Heisann, jeg skal ha et program som lar en bruker skrive inn en tall verdi i to forskjellige inputboxer. Derretter skal programmet skrive ned de tallene som er imellom og så skrive de ut i en lang label.

 

Jeg laget meg selv tre varibaler:

 

Input1 (For inputbox1)

input2 (For inputbox2)

tallet (som en hjelpe variabel, denne er satt lik "input1")

 

Ser for meg at det er en "Do while" løkke eller kanskje en "for" løkke.

Legger til koden min så langt til dere:

 

Public Class Form1
   Dim input1 As Integer
   Dim input2 As Integer
   Dim tallet As Integer


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

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       input1 = InputBox(" skriv inn det første tallet")
       input2 = InputBox("skriv inn det andre tallet")
       tallet = input1

       Do While tallet < input2
           Label1.Text = tallet & " "
           tallet = tallet + 1
       Loop
   End Sub
End Class

 

Det som da skjer her er at programmet legger til det siste tallet i en label, altså dersom jeg skrev 10 i en inputbox og 20 i den andre ville mitt program kun skrevet ut 19 når jeg egentlig vil 11,12,13,14,15,16,17,18,19,20

 

Er det noen som kan hjelpe meg med denne her?

Håper dere skjønner hva jeg mener,

på forhånd, Takk

 

Hilsen Marius :)

Lenke til kommentar
Videoannonse
Annonse
    Public Function GetDifference(ByVal a As Integer, ByVal b As Integer) As String
       Dim op As Func(Of Integer, Integer)
       Dim res As New System.Text.StringBuilder()
       Dim i As Integer

       If a > b Then op = Function(inp) inp - 1 Else op = Function(inp) inp + 1
       For i = a To b - op(0) Step op(0)
           res.Append(i & ", ")
       Next

       res.Append(i)
       Return res.ToString()
   End Function

Lenke til kommentar
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim input1 As Integer, input2 As Integer, tallet As Integer
       On Error GoTo feil
       input1 = InputBox(" skriv inn det første tallet")
       input2 = InputBox("skriv inn det andre tallet")
       tallet = input1
       Label1.Text = ""
       Do While tallet <= input2
           Label1.Text = Label1.Text & tallet & " ,"
           tallet = tallet + 1
       Loop
       Label1.Text = Mid(Label1.Text, 1, Microsoft.VisualBasic.Len(Label1.Text) - 1)
       Exit Sub
feil:   MsgBox("Feil i input.")
   End Sub

Lenke til kommentar

Koden din tar ikke høyde for at brukeren kan finne på å bytte rekkefølge...

 

Tenkte forresten ut en versjon som kanskje er enklere å forstå som ikke bruker lambdauttrykk:

 

Public Function GetDifference(ByVal a As Integer, ByVal b As Integer) As String
   Dim op As Integer = Math.Sign(b - a)
   Dim res As New System.Text.StringBuilder()
   Dim i As Integer

   For i = a To b - op Step op
       res.Append(i & ", ")
   Next
   res.Append(i)
   Return res.ToString()
End Function

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...