Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Toisella formilla olevan muuttujan, kontrollin tai aliohjelman osoittaminen

Hannu [03.12.2005 00:24:31]

#

Käyttämäni kieli on tällä kertaa Visual Basic Express 2005.

Miten saan Form2:n koodista asetettua Form1:llä olevan Textboxin tekstin?

Mikä merkitys on sillä esitteleekö Form1:llä olevan rutiinin tai muuttujan Diminä, Privatena tai Publicina?
Kun kuitenkaan niitä ei voi osoittaa Form2:n koodissa.

Merri [03.12.2005 05:44:19]

#

Jos VB2005 on mitenkään samankaltainen vanhan VB:n kanssa, niin voit viitata julkisiin (Public) muuttujiin tai objekteihin varsin helposti:

Form1.Text1.Text = "Jotakin"

Myös julkisen muuttujan muuttaminen onnistuu samalla tavoin:

Form1.Muuttuja = 1

Tosin suositeltavaa olisi muuttujien sijaan käyttää ominaisuuksia (Property). Sen syntaksin tiedän kuitenkin poikkeavan sen verran paljon vanhasta VB:stä, että en ala sitä neuvomaan. Propertyn kautta asian säätäminen on toki hieman hitaampaa kuin muuttujan säätäminen suoraan, mutta etuina voivat olla vaikkapa virheentarkistuksen lisääminen ja koodin parempi joustomahdollisuus: eli sen sijaan että tietäisi toisen formin koodissa, miten toinen toimii, voi käsitellä sitä ennemminkin objektina. Eli käskee tekemään jonkin asian.


Dim asettaa lähinnä automaattisesti "sen suositellun tavan", eli joko Privaten tai Publicin, riippuen siitä onko kyseessä form, module tai class module. Tai jokin muu. Moduulissa julkiseksi, muualla yksityiseksi.

Hannu [03.12.2005 19:01:37]

#

No niinpä toimiikin noin! :)

Itseasiassa en edes kotona yrittänyt aikaisemmin tällä VB2005:llä. Töissä vaan ihmettelin kun ei millään onnistunut noin ja siellä on käytössä VB.NET 2003. Siinä sitten kai jotenkin eri tavalla pitää tehdä tuo. En ainakaan saanut töissä toimimaan. Olin varma että ei olisi toimitunut tässä VB2005:ssakaan, kun se on niin saman tyylinen. Mutta näyttää kuitenkin onnistuvan.
VB.NET:illä en mitenkään päässyt käsiksi Formilla määritettyyn Public-muuttujaan toisesta Formista. Ainoastaan niihin Publiceihin tuntui pääsevän, jotka oli määritelty vakiomodulissa.

Juice [03.12.2005 21:05:12]

#

Joskus itsekin olen tapellut toisten formien kontrollien kanssa ja päätynyt lähettämään textboxin form2:n konstruktorissa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta