nooby heeft quiz vraag!

Status
Niet open voor verdere reacties.

m4dc0w344

Gebruiker
Lid geworden
8 aug 2011
Berichten
377
heej

ik heb en vraag
hoe kan ik wanneer je tijdens een quiz alle vragen goed hebt beantwoord naar de volgende form gaan??

ik heb dit(ik ben wel een echte noob dus het is niet veel goeds :D)
Code:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text = "hallo" Then
            antwoord1.Text = "goed!"
        Else
            antwoord1.Text = "fout!"
        End If

        If TextBox2.Text = "doei" Then
            antwoord2.Text = "goed!"
        Else
            antwoord2.Text = "fout!"
        End If

        If TextBox3.Text = "nee" Then
            antwoord3.Text = "goed!"
        Else
            antwoord3.Text = "fout!"

        End If

        If TextBox4.Text = "ja" Then
            antwoord4.Text = "goed!"
        Else
            antwoord4.Text = "fout!"
        End If

        If TextBox5.Text = "telefoon" Then
            antwoord5.Text = "goed!"
        Else
            antwoord5.Text = "fout!"
        End If

        If TextBox6.Text = "staal" Then
            antwoord6.Text = "goed!"
        Else
            antwoord6.Text = "fout!"
        End If

        If TextBox7.Text = "verkenner" Then
            antwoord7.Text = "goed!"
        Else
            TextBox7.Text = "fout!"
        End If

        If TextBox8.Text = "start" Then
            antwoord8.Text = "goed!"
        Else
            antwoord8.Text = "fout!"
        End If


    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If antwoord1 And antwoord2 And antwoord3 And antwoord4 And antwoord5 And antwoord6 And antwoord7 And antwoord8 = "Goed!" Then
            Show(Form2)
else 
msgbox "je moet eerst alle vroegen goed hebben beandwoord dan kan je pas naar de volgende opdracht"
        End If
    End Sub
End Class
 
Laatst bewerkt:
Kun je niet beter één TextBox gebruiken ? En dat je één vraag per keer doet? Dat scheelt werk.

Voorbeeld:

Met VraagLbl als Label waar de vraag in staat en
AntwoordTxtBox.Text als TextBox waar de gebruiker zijn antwoord invult.

Zet deze code bóven al je subs en onder bijv. Public Class Form1.
[CPP]Private Antwoorden As String() = {"2","m4dc0w344","HelpMij"}
Private Vragen As String() = {"Hoeveel is 1+1?","Wie is de TS?","Hoe heet dit forum?"}
Private Vraagnummer = 0[/CPP]

Bij het klikken van een 'Volgende'-knop:

[CPP]If AntwoordTxtBox.Text = Antwoorden(Vraagnummer) Then
If Vraagnummer <> Vragen.Length - 1 Then Vraagnummer += 1 Else MsgBox("Dit was de laatste vraag.")
AntwoordTxtBox.Text = ""
VraagLbl.Text = Vragen(Vraagnummer)
Else
AntwoordTxtBox.Text = ""
MsgBox("U heeft een fout antwoord gegeven!")
End If[/CPP]

In het load-event:

[CPP]VraagLbl.Text = Vragen(0)[/CPP]
 
Laatst bewerkt:
Uuuhm...
Kun je plz uitleggen wat wat nou doet want ik doe pas 2dagen met VB dus...

Alvast bedankt
 
In de code in het eerste vakje declareer ik twee arrays, één met alle antwoorden en één met alle vragen, en één integer, die het aantal vragen dat goed is beantwoord weergeeft.

In de code van het tweede vakje zeg ik letterlijk:

Als het antwoord goed is:
  • als het de laatste vraag is, laat dat dan zien;
  • maak het antwoordvak leeg;
  • laat de nieuwste vraag zien (als het niet de laatste vraag is).
Als het antwoord fout is:
  • maak het antwoordvak leeg;
  • laat zien dat het antwoord fout is.

In de code van het derde vakje, wordt de vraag geladen als het programma wordt opgestart.


Heb je de code geprobeerd?
En snap je het nu?
 
Laatst bewerkt:
Eigenlijk niet.
Jij zij "als het de laatste vraag is laat het dan zien" maar hoe laat ie het dan zien?
Het 2e puntje snap ik:3
Het derde snap ik wel maar niet hoe de code werkt

En waar moet je het antwoord plaatsen?
En niet geprobeerd zit nu op de ipad
 
m4dc0w344 zei:
Jij zij "als het de laatste vraag is laat het dan zien" maar hoe laat ie het dan zien?
D.m.v. de MessageBox functie. Ofwel er verschijnt een popup.

m4dc0w344 zei:
Het derde snap ik wel maar niet hoe de code werkt

De code zegt dat de tekst van VraagLbl.Text (dat is het label waar de vraag in staat) de eerste waarde (= eerste vraag) uit de 'Vragen'-array neemt.

m4dc0w344 zei:
En waar moet je het antwoord plaatsen?

In een TextBox genaamd AntwoordTxtBox.
 
de eerste 2 snap ik, maar de laatste snap ik niet of jij snapte niet echt wat ik bedoelde( ik bedoel hoe weet het progamma wat het antwoordden van alle vragen zijn ?
 
Het programma checkt alle antwoorden in de Array (je weet wat dat is?) genaamd Antwoorden.

Misschien dat als je de code probeert, het één en ander duidelijk wordt?
 
ik heb het geproobeer maar hij geeft echt overal fout meldingen!

wel vaag ik maak een label aan die heet Antwoorden maar die herkent ie niet
 
Ik denk dat jij mijn posts niet nauwkeurig genoeg leest of niet snapt. :(

m4dc0w344 zei:
ik maak een label aan die heet Antwoorden

Ik heb (meerdere keren) gezegd dat je je Label: VraagLbl moet noemen
en je TextBox AntwoordTxtBox.

Dit zeg ik niet om jou te pesten met de namen van de controls, maar omdat het makkelijk is een naam te geven die wat zegt over de functie. Dat is overzichtelijker.


Als je iets niet snapt, a.u.b. vragen. Want de code werkt gewoon ;)
 
ok
maar ik ben zelf ook bezig geweest maar waarom heb ik een andere mannier dan jij ?
ik heb het nu zo
Public Class Form2



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button1.Enter
If TextBox1.Text = "2" Then
lbl2.Text = "goed! je mag door naar de volgende!"
Label3.Text = "1"


End If

If TextBox1.Text = "4" And Label3.Text = "2" Then
lbl2.Text = "goed! je mag door naar de volgende!"
Label3.Text = "2"


End If

If TextBox1.Text = "m4dc0w344" And Label3.Text = "2" Then
lbl2.Text = "goed! je mag door naar de volgende!"
Label3.Text = "3"
End If



End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

If Label3.Text = "1" And TextBox1.Text = "2" Then
Label1.Text = "wat is 2+2"
lbl2.Text = ""
TextBox1.Text = ""
Label3.Text = "2"
End If
If Label3.Text = "2" And TextBox1.Text = "4" Then
Label1.Text = "wie is de beste"
lbl2.Text = ""
TextBox1.Text = ""
Label3.Text = "3"
End If
If Label3.Text = "3" And TextBox1.Text = "m4dc0w344" Then
Label1.Text = "in de maake"
lbl2.Text = ""
TextBox1.Text = ""
TextBox1.Enabled = False
Label3.Text = "4"
End If
End Sub

End Class

ik heb maar 1 textbox en wanner de antwoord goed is dan veranderderd een gatal dat aangeeft hoeveel vragen je al hebt gedaan.
 
Ik weet niet waarom jij een andere manier hebt, maar ik vind jouw manier omslachtiger en te veel code.

Begrijp je mijn code (en dusdanig dat je het kunt toepassen) ?
Anders zal ik een voorbeeldprojectje moeten maken :)
 
Ik denk dat je een voorbeeld moet maken, ik snap het wel maar niet echt hoe je hetf moet toepassen.

Ik vind wel dat je veel geduld hebt :3
 
Hier kun je het voorbeeldproject downloaden.

35834912.jpg



m4dc0w344 zei:
Ik vind wel dat je veel geduld hebt :3

Tnx :D
 
heej
ik snap het grootste gedeelte nu wel alleen ik snpa niet echt wat
If Vraagnummer <> Vragen.Length - 1 Then Vraagnummer += 1 Else MsgBox("Dit was de laatste vraag.")

ik weet wel wat het doet maar hoe het werkt dat weet ik niet en ik snap het begrip "lenght" niet?
 
Als je de 'Length'-opvraagt van een array, krijg je het aantal items dat zich in die array bevindt.

Ik heb die regel in het project zo gescrheven:

[cpp]If Vraagnummer <> Vragen.Length - 1 ' Als het NIET de laatste vraag is dan...'
Vraagnummer +=1 ' Ga naar de volgende vraag'
Else ' Als het WEL de laatste vraag is dan...'
MsgBox("Dit was de laatste vraag") ' Laat aan de gebruiker zien dat het de laatste vraag is'
VolgendeBttn.Enabled = False ' Zorg dat de gebruiker niet meer op volgende kan klikken.'
End If[/cpp]

In die regel code die jij niet snapte (nu wel?), staat alleen niet dat de Volgende-knop niet meer ingedrukt kan worden als het de laatste vraag is.
Voor de rest is-ie hetzelfde.

Dit is trouwens de enige verandering aan de code die ik in het voorbeeldproject heb gebruikt, zoals je misschien al wel hebt gezien.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan