Yritän tehdä C#:lla (periaatteessa) yksinkertaista asiaa, eli Form1:llä button, jota painaessa pitäisi kirjoittaa Form2:n textboxiin vaikkapa sana "foobar".
Miten tuo toisen formin textboxiin viittaaminen/kirjoittaminen pitäisi tehdä?
EDIT: Selvisikin jo. Kyllä meni aikaa mitättömässä asiassa...
Ilmeisesti ongelma on ratkennut, mutta kerrotaanpa yksi ratakisu, kun niitä luultavasti tulee vielä useita muitakin vaihtoehtoja.
Ilemeisesti Form2:ia ei voi olla kuin yksi kappale olemssa, kun siihen viitataan luokan nimellä kysymyksessä, joten siitä on mahdollista tehdä staattinen, jolloin Form1.Button1_Click voi viitata siihen suoraan esim. Form2.SetLabelText("Halleluja!");.
Helpoin ratkaisu kuvattuun ongelmaan on varmaankin määrittelyssä muuttaa sen näkyvyyttä. Tällaisen ratkaisun laitoin VB.NETin puolelle muinoin, C#:ssa toimii aivan samalla tavalla.
' Tätä voi muuttaa vain tässä formissa: Private OmaNappula As System.Windows.Forms.Button ' Tätä voi muuttaa muualtakin: Public YleinenNappula As System.Windows.Forms.Button
Sitten vain normaaliin tapaan pisteitä väliin.
Form.YleinenNappula.Width = 10.
Tietysti tuon voi tehdä vielä kauniimmin jollakin friend-viritelmillä, jos .NET sellaiset tuntee.
>>Tietysti tuon voi tehdä vielä kauniimmin jollakin friend-viritelmillä, jos .NET sellaiset tuntee.
Ei ole ystäviä C#:ssa. Eikä ystävät ole kauniita missään muussakaan kielessä.
Pääformin avulla voidaan aliformeille asettaa viittauksia toisiin, ja niiden kautta voidaan kutsua toisen formin metodeja.
Myös omien eventtien laukaiseminen on hyvä tapa, niihin tehdään sitten sopivassa paikassa tapahtumankäsittelijät.
Aihe on jo aika vanha, joten et voi enää vastata siihen.