Minulla on ongelma. Aloin tehdä "Lihakauppamanageripeliä" VB:llä.
Ensin tulee formi, jossa syötetään oma nimi ja kaupan nimi ja kun painetaan OK se formi menee pois ja tilalle tulee ns. päänäkymäformi jossa pitäisi lukea kaupan nimi ja omistaja. Mutta eipä lue.
Eli siis form1:ssä on tällainen koodi:
static txtnimi as string
static txtkauppanimi as string
On siinä muutakin, mutta koska VB ei tällä hetkellä ole asennettu, en muista mitä siinä luki.
Ja sitten form2:ssa:
lblnimi = txtnimi
lblkauppanimi = txtkauppanimi
Mutta nuo labelit ovat tyhjiä. Mikä on ongelma?
ööh... mä oon ainakii tehny sillee toisesta formista toisee et jos siinä form1:ssä on vaikka nimi.text ja sitte ku tulee form2 nii vaikka form_load juttuu pistää että lblnimi.caption = form1.nimi.text
tajusinkohan nyt ihan oikein? :D
esimerkiksi
lblnimi.caption = txtnimi (olettaen että lblnimi on perinteinen label)
ja jos viittaat esim. form kakkosesta form1:den labeliin sun täytyy käyttää:
form1.lblnimi.caption = txtnimi
Edit: asia virheitä
Muuttujien siirtämiseen formien välillä on useita tapoja. Eräs tapa on määritellä formin alussa muuttujia Public-lauseella, jolloin niiden arvoa voi muuttaa kaikista ohjelman osista. Kirjoita siis ensimmäisen formin alkuun:
'formin nimi on Form1 Public nimi As String, kauppanimi As String
Muuttujien määrittely formissa tapahtuu tavalliseen tapaan:
nimi = "Antti" kauppanimi = "Antin kirja ja paperi"
Toisesta formista muuttujien arvoon pääsee käsiksi näin:
MsgBox "Pelaajan nimi " & Form1.nimi MsgBox "Kaupan nimi " & Form1.kauppanimi
Okei, siis mun pitää muuttaa static publiciin. Tesmataan..
Ei toimi.
Vika on form1:ssä. Kun laitan ohjelman käyntiin, kirjoitan nimet ja painan OK:ta, niin tulee "compile error: invalid attribute in Sub or function"
ja se keltanen juttu on Public sanan kohdalla. hmph...
No nyt sain toimimaan. Vaihdoin Publicin Staticiin.
Public-määrittely toimii kyllä ihan hyvin, kunhan kirjoitat sen ohjelman alkuun etkä aliohjelman tai funktion sisään. Valitse koodieditorissa oikeanpuoleisesta listasta (General), ja kirjoita määrittely sinne.
Aihe on jo aika vanha, joten et voi enää vastata siihen.