Mulla on monia sanoja joista haluisin satunnaisesti minkä tahansa textboxiin nappia painamalla. Eli jos mulla on vaikka sanat kissa, koira ja kilpailu niin miten saisin että ohjelma arpoo jonkun niistä textboxiin? Ja noi sanat ei ole listboxissa tai textboxeissa vaan koodissa.
Onnistuuko Select Casella ja Randomizella? Mä en osaa noita Case juttuja.
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&nimi=Rnd
Int((yläraja - alaraja + 1) * Rnd + alaraja)
https://www.ohjelmointiputka.net/oppaat/opas.
Eli toimisiko tämä?
Private Sub ArvoSana() Dim Numero As Integer Numero = Int((3 - 1 + 1) * Rnd + 1) Select Case Index Case 1 Kissa Case 2 Koira Case 3 Kilpailu End Select Text1.Text = Case Numero End Sub
:D Ei taida ihan toimia?
JussiR kirjoitti:
Eli toimisiko tämä?
Nopeimmin vastauksen saat kokeilemalla itse.
JussiR kirjoitti:
Select Case Index
Eihän sulla oo missään määriteltynä Index-nimistä muuttujaa.
JussiR kirjoitti:
Text1.Text = Case Numero
Ei sijoituslauseeseen Casea tule.
Mitä pitäisi tehdä? Miten muttuja määritellään ja miten saan että ohjelma arpoo jonkin noista Caseista?
Tässä on yksi toteutus:
Dim numero As Integer numero = Int(Rnd * 3) + 1 Select Case numero Case 1 Text1.Text = "kissa" Case 2 Text1.Text = "koira" Case 3 Text1.Text = "kilpailu" End Select
Saman voi tehdä myös näin:
Dim numero As Integer numero = Int(Rnd * 3) + 1 Dim sana As String Select Case numero Case 1 sana = "kissa" Case 2 sana = "koira" Case 3 sana = "kilpailu" End Select Text1.Text = sana
Tai taulukon avulla:
Dim sanat(3) As String sanat(1) = "kissa" sanat(2) = "koira" sanat(3) = "kilpailu" Dim numero As Integer numero = Int(Rnd * 3) + 1 Text1.Text = sanat(numero)
Kirjoita lisäksi ohjelman alkuun (esim. kohtaan Form_Load) rivi "Randomize Timer", jotta ohjelma ei arvo sanoja aina samalla tavalla.
Ok. Kiitti taas hyvistä neuvoista!
Aihe on jo aika vanha, joten et voi enää vastata siihen.