Gå til innhold

Anbefalte innlegg

Hei e e helt nybegynner på vb men eg lærer litt etter vert eg har et spm.

eg holder på å mekke en extra kalkis pga dama kjøper 10-15 ver uke og det e litt pes å sjekke alle

 

det som eg tenker på e hvordan eg kan sette opp en if nummber match box

dette e litt vanskelig å forklare så eg prøver å illustrere

 

 

 

[nummer fra extra trekkningen][][][][][][][][][]

 

(Knapp for å aktivere sjekkinga]

 

 

[boxer for å taste inn talla som du har på din extra kupong][][][][][][][][]

 

 

tingen eg stresser med e å få connecta di to det eg vil den skal gjøre e at når du trykker

på knappen e at vist nummerene i kupong boxene matcher di i trekning rutene så blir bg'n i kupong vinduene Grønne

 

eg legger ved et bilde

 

takker for all hjelp på fårhandpost-58160-1149602628_thumb.jpg

Lenke til kommentar
Videoannonse
Annonse

Vet ikke helt om jeg forstår hva du mener, men du kan jo prøve:

 

If Me.txt1.Text = Me.txtMal1.Text Then

'Treff

Elseif Me.txt2.Text = Me.txtMal1.Text Then

'Treff

Elseif Me.txt3.Text = Me.txtMal1.Text Then

'Treff

End If

 

Også videre, klart det fins enklere måter, men de ligger desverre ikke fremst i mitt hode.

Lenke til kommentar

Du må bruke en løkke til å søke gjennom alle tekstboksene. Det blir en smule innfløkt å forklare hvordan her og nå, er jeg redd, men du kan sikkert finne gode tekster om emnet på både nettet og i biblioteket.

 

Ellers har jeg faktisk en gang i tiden laget et program noenlunde lik dette, dog i VB6. Du kan finne det her.

Lenke til kommentar

Er det .NET du skriver i? Kan selv bare 6.0, men jeg kan si noe om fremgangsmåte og vise litt pseudokode.

 

Det første du må gjøre er å endre litt på alle objektene slik at det blir lettere å skrive koden. Navngi alle de 3*20 tekstboksene txtTall og gi de en index-verdi basert på boksens posisjon. Navngi alle brettene txtBrett. (Første er 0, andre er 1, osv.)

 

I kodedelen starter du en løkke og går gjennom alle de:

Dim Tall
For Tall = 0 To 59
   
   
Next Tall

For hver av de du går gjennom, må du sjekke alle brettene. 200 ruter i brettene, ganger 60, 12000, det blir mye å sjekke. Lite effektivt å skrive så mange IF-settninger. ;)

 

Deretter sjekker man alle de 200 rutene og ser etter like tall:

Dim Tall
For Tall = 0 To 59
   Dim Brett
   For Brett = 0 To 199
       If txtTall(Tall).Text = txtBrett(Brett).Text Then txtBrett(Brett).BackColor = vbGreen
   Next Brett
Next Tall

 

Edit: aadnk kom først, løkker er altså løsningen.

Endret av Jonas
Lenke til kommentar

Bemerk at .NET ikke støtter Index-egenskapen så som i VB6. I .NET kan du i stedet benytte Me.Controls for å søke gjennom alle kontroller i formen:

 

        Dim TextBox As TextBox, Numbers As New ArrayList, Tell As Long, Index As Long

 

        ' Her formoder jeg at tekstbokser som inneholder tallene det skal

        ' søkes oppimot begynner med 'txtSearch', mens tekstboksene i de ulike

        ' brikkene begynner med 'txtCell'.

 

        ' Gå gjennom de numre som skal brukes for å sjekke tekstboksene

        For Each TextBox In Me.Controls

 

            ' Sjekk at dette er en tekstboks som inneholder info

            If TextBox.Name.StartsWith("txtSearch") Then

 

                ' Legg til innholdet i array

                Numbers.Add(Val(TextBox.Text)) ' Lettest i denne sammenhengen

 

            End If

 

        Next

 

        ' Gå gjennom alle inndatatekstbokser i formen

        For Each TextBox In Me.Controls

 

            ' Sjekk kun tekstbokser som begynner med en viss streng

            If TextBox.Name.StartsWith("txtCell") Then

 

                ' Sett standardverdier

                Index = -1

 

                ' Søk etter tallet

                For Tell = 0 To Numbers.Count - 1

                    If Numbers.Item(Tell) = Val(TextBox.Text) Then

 

                        ' Lagre indeks

                        Index = Tell

 

                        ' Hopp ut av søkesubrutinen

                        Exit For

 

                    End If

                Next

 

                ' Sjekk om tekstboksen korresponderer til de gitte tallene

                If Index >= 0 Then

 

                    ' Hvis så, sett en ny farge

                    TextBox.BackColor = Color.PaleGreen

 

                Else

 

                    ' Ellers, ... bruk normale farger

                    TextBox.BackColor = Color.White

 

                End If

 

            End If

 

        Next

Var visst ikke like innviklet å forklare likevel. :)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...