programma blokkeren totdat tekstbox is ingevuld

Status
Niet open voor verdere reacties.

sachadoggy

Gebruiker
Lid geworden
18 mrt 2011
Berichten
6
Ik ben bezig met het maken van een programma waarin je een dobbelsteen kan gooien.

Ik heb een textbox waarin je je naam moet invullen
Daaronder staat het button met als titel gooien.
Daarin staat de code om de dobbelsteen te laten gooien en de score op te tellen.
Ik wil nu dat er nog niet wordt gegooid totdat de naam is ingevuld.

Met if/else kan ik wel voor elkaar krijgen dat er een bijschift onder de textbox komt met: vul de naam in!
Hier de code:
If TextBox1.Text = "" Then
Label11.Visible = True
End If

Alleen daarna gaat het programma gelijk verder, je krijgt geen mogelijkheid om de naam in te vullen.

Hoe zou ik dit kunnen oplossen? Heeft iemand hier een code voor?
Ik ben een beginner, dus a.u.b. niet te moeilijk code.
 
Ik weet niet of ik een antwoord geef op wat je wilt maar mss is dit wel een ideetje:

  • Dubbelklik op je textbox
  • Dan opent normaal de code...
  • Hier kan je nu hetvolgende typen:
    Code:
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged     'zou er normaal al moeten staan
    
    if textbox.text = "" then 
    
    btn_gooien.enabled= false   'geen tekst in de textbox, dan zal je niet kunnen klikken op de knop gooien
    'Je kan hier ook laten je label verschijen
    Label11.visible = true
    
    else 
    
    btn_gooien.enabled= true   'wel tekst in de textbox, dan zal je wel kunnen klikken
    Label11.visible = false
    
    end if
    End Sub    '(staat erook al)

Wanneer de tekst in de textbox zal wijzigen zal de knop "klikbaar" worden (enabled). (Je kan dan extra voorwaarden stellen zoals, minimum zoveel letters ...)

Weet niet of je hier iets mee bent?

BEEE
 
Laatst bewerkt:
bedankt

Het werkt nu voor een gedeelte wel. Wel moet ik de code in het commandbutton zetten en niet in de textbox.

Ik zie alleen nu dat ik met iets geen rekening had gehouden.
Als de naam is ingevuld, wordt die vastgelegd in een label.
(Achter dat bijschrift staan het aantal punten dat iemand haalt met het gooien)
Omdat ik wil dat de naam niet elke keer weer veranderd wordt, heb ik in het button gooien gezet:
Code:
TextBox1.Visible = False

Als er dus geen naam wordt ingevuld, maar er wordt gelijk op gooien geklikt, komt het label tevoorschijn met vul je naam in. Alleen de textbox verdwijnt ook gelijk, daardoor kan je dus de naam niet invullen.

Hoe zou ik dit probleem kunnen oplossen?
 
Ik weet niet of je heel erg veel code hebt...

Maar kan je anders de belangrijkste dingen even hier zetten...
Want ik begrijp je niet zo.

Met textbox.visible = false , verberg je idd de de textbox ... Dus is het moeilijk om nog een naam in te vullen.
 
ok

publiceren lukt niet. hier is de code:
Code:
Private Sub CommandButton1_Click()

If TextBox1.Text = "" Then
    CommandButton1.Enabled = False
    Label11.Visible = True

Else
CommandButton1.Enabled = True

dobbel1 = Int((6 * Rnd) + 1)
dobbel2 = Int((6 * Rnd) + 1)
dobbel3 = Int((6 * Rnd) + 1)

End If

If dobbel1 = 6 Then
    show1.Picture = UserForm2.dobbelsteen6.Picture
End If
If dobbel2 = 6 Then
    show2.Picture = UserForm2.dobbelsteen6.Picture
End If
If dobbel3 = 6 Then
    show3.Picture = UserForm2.dobbelsteen6.Picture
End If
If dobbel1 = 5 Then
    show1.Picture = UserForm2.dobbelsteen5.Picture
End If
If dobbel2 = 5 Then
    show2.Picture = UserForm2.dobbelsteen5.Picture
End If
If dobbel3 = 5 Then
    show3.Picture = UserForm2.dobbelsteen5.Picture
End If
If dobbel1 = 4 Then
    show1.Picture = UserForm2.dobbelsteen4.Picture
End If
If dobbel2 = 4 Then
    show2.Picture = UserForm2.dobbelsteen4.Picture
End If
If dobbel3 = 4 Then
    show3.Picture = UserForm2.dobbelsteen4.Picture
End If
If dobbel1 = 3 Then
    show1.Picture = UserForm2.dobbelsteen3.Picture
End If
If dobbel2 = 3 Then
    show2.Picture = UserForm2.dobbelsteen3.Picture
End If
If dobbel3 = 3 Then
    show3.Picture = UserForm2.dobbelsteen3.Picture
End If
If dobbel1 = 2 Then
    show1.Picture = UserForm2.dobbelsteen2.Picture
End If
If dobbel2 = 2 Then
    show2.Picture = UserForm2.dobbelsteen2.Picture
End If
If dobbel3 = 2 Then
    show3.Picture = UserForm2.dobbelsteen2.Picture
End If
If dobbel1 = 1 Then
    show1.Picture = UserForm2.dobbelsteen1.Picture
End If
If dobbel2 = 1 Then
    show2.Picture = UserForm2.dobbelsteen1.Picture
End If
If dobbel3 = 1 Then
    show3.Picture = UserForm2.dobbelsteen1.Picture
End If

Label15.Caption = dobbel1 + dobbel2 + dobbel
TextBox1.Visible = False

End Sub

Private Sub CommandButton2_Click()

dobbel4 = Int((6 * Rnd) + 1)
dobbel5 = Int((6 * Rnd) + 1)
dobbel6 = Int((6 * Rnd) + 1)

If dobbel4 = 6 Then
    show4.Picture = UserForm2.dobbelsteen6.Picture
End If
If dobbel5 = 6 Then
    show5.Picture = UserForm2.dobbelsteen6.Picture
End If
If dobbel6 = 6 Then
    show6.Picture = UserForm2.dobbelsteen6.Picture
End If
If dobbel4 = 5 Then
    show4.Picture = UserForm2.dobbelsteen5.Picture
End If
If dobbel5 = 5 Then
    show5.Picture = UserForm2.dobbelsteen5.Picture
End If
If dobbel6 = 5 Then
    show6.Picture = UserForm2.dobbelsteen5.Picture
End If
If dobbel4 = 4 Then
    show4.Picture = UserForm2.dobbelsteen4.Picture
End If
If dobbel5 = 4 Then
    show5.Picture = UserForm2.dobbelsteen4.Picture
End If
If dobbel6 = 4 Then
    show6.Picture = UserForm2.dobbelsteen4.Picture
End If
If dobbel4 = 3 Then
    show4.Picture = UserForm2.dobbelsteen3.Picture
End If
If dobbel5 = 3 Then
    show5.Picture = UserForm2.dobbelsteen3.Picture
End If
If dobbel6 = 3 Then
    show3.Picture = UserForm2.dobbelsteen3.Picture
End If
If dobbel4 = 2 Then
    show4.Picture = UserForm2.dobbelsteen2.Picture
End If
If dobbel5 = 2 Then
    show5.Picture = UserForm2.dobbelsteen2.Picture
End If
If dobbel6 = 2 Then
    show6.Picture = UserForm2.dobbelsteen2.Picture
End If
If dobbel4 = 1 Then
    show4.Picture = UserForm2.dobbelsteen1.Picture
End If
If dobbel5 = 1 Then
    show5.Picture = UserForm2.dobbelsteen1.Picture
End If
If dobbel6 = 1 Then
    show6.Picture = UserForm2.dobbelsteen1.Picture
End If

Label16.Caption = dobbel4 + dobbel5 + dobbel6
TextBox2.Visible = False

End Sub

Private Sub Label13_Click()

Label13.Caption = TextBox1.Text

End Sub

Private Sub Label15_Click()

End Sub

Private Sub TextBox1_Change()

Label13.Caption = TextBox1.Text

End Sub

Private Sub TextBox6_Change()

TextBox6.Text = dobbel1 + dobbel2 + dobbel3

End Sub

Private Sub UserForm_Click()

End Sub

Textbox1 = invullen naam 1
Textbox2 = invullen naam2
Label11 = label met 'vul de naam in' voor speler 1
Label12 = label met 'vul de naam in' voor speler 2
Label13 = label voor de naam van speler1, daarachter staat de punten van speler1
Label14 = label voor de naam van speler2, daarachter staat de punten van speler2
Label15 = hier komen de punten in voor speler 1
Label16 = hier komen de punten in voor speler 1
Commandbutton1 = button gooien speler 1
Commandbutton2 = button gooien speler 2
show1 = plaatje dobbelsteen 1 (je moet namelijk met drie dobbelstenen per speler gooien)
show2 = plaatje dobbelsteen 2
show3 = plaatje dobbelsteen 3
show4 = plaatje dobbelsteen 4
show5 = plaatje dobbelsteen 5
show6 = plaatje dobbelsteen 6
printscreen.jpg

op het plaatje zie nog veel meer labels, textboxen en button.
Daar moet je niet op letten, die zijn niet erg belangrijk
 
Laatst bewerkt:
Code:
If TextBox1.Text = "" Then
    CommandButton1.Enabled = False
    Label11.Visible = True
end if
Dit zou ik zoals ik al zij bij de code voor de textbox1 zetten wanneer de tekst wordt aangepast...
Dit zal er dan voor zorgen wanneer er getypt wordt in de textbox dat de code doorlopen wordt en de button beschikbaar zal worden.
Ook kan je die code in je load van je form zetten.
 
Code:
Private Sub CommandButton1_Click()
Bij dat kan je natuurlijk wel nog dit toevoegen:
Code:
if textbox.text <> "" then 
textbox.visible = false 
end if
'Dan zal de naam niet opnieuw "gevraagt" worden want dan zal het niet meer zichtbaar zijn... (maar dit enkel pas dan wanneer er al iets ingevuld is.)
 
werkt nog niet helemaal

hij werkt nog niet helemaal.

als ik geen naam invul en op gooien klik, blokkeert het programma het gooibutton en verschijnt het label.
Als ik nu de namen invul kan ik niet meer op gooien klikken. Het is immers geblokkeerd. Als ik hem enable gebeurt er alleen niks. hier mijn code:
Code:
If TextBox1.Text <> "" Then
TextBox1.Visible = False
CommandButton1.Enabled = True
Else
Label11.Visible = True
CommandButton1.Enabled = False
End If

If TextBox1.Text <> "" Then
CommandButton1.Enabled = True
End If
 
Code:
Private Sub TextBox1_Change()

'Als de tekst wijzigt, zal derikt gecontroleerd worden...

If TextBox1.Text <> "" Then
label11.Visible = False
CommandButton1.Enabled = True
Else
Label11.Visible = True
CommandButton1.Enabled = False
End If


End Sub
 
Hi set de code in een TextBox1_LostFocus

of in een TextBox1_MouseLeave

Je code word pas uitgevoerd als je op de button klikt of ergens anders.


Code:
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus

if textbox.text = "" then 

btn_gooien.enabled= false  
Label11.visible = true

else 

btn_gooien.enabled= true  
Label11.visible = false

end if
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan