Tietäiskö joku C# sovelluskehittimestä, että mistä saa kytkettyä ominaisuuden jolla esim napista painettaessa ei aukea joka kerran uusi lomake, vaan jos lomake on jo kerran avattu ja avoinna käytön aikana niin se ainoastaan aktivoituisi päällimmäiseksi. Millainen olio tähän pitäisi olla?
Toinen asia olisi sitten se, että kun on kaksi lomaketta ja ensimmäisen lomakkeen napista painaa päivitä nappia, niin toisen lomakkeen tekstikenttään tulisi esim ensimmäiselle lomakkeelle syötetty tieto.
Itselläni tämä toimii puolittain niin, että arvo kyllä menee toiselle lomakkeelle kun se toinen lomake luodaan. Mutta tietojen päivitys pitäisi toimia ensimmäiseltä lomakkeelta päivittämällä myös senkin jälkeen.
Osaisko joku guru kertoa miten nää asiat saisi kuntoon?
Toinen asia olisi sitten se, että kun on kaksi lomaketta ja ensimmäisen lomakkeen napista painaa päivitä nappia, niin toisen lomakkeen tekstikenttään tulisi esim ensimmäiselle lomakkeelle syötetty tieto.
Itselläni tämä toimii puolittain niin, että arvo kyllä menee toiselle lomakkeelle kun se toinen lomake luodaan. Mutta tietojen päivitys pitäisi toimia ensimmäiseltä lomakkeelta päivittämällä myös senkin jälkeen.
Osaisko joku guru kertoa miten nää asiat saisi kuntoon?
Vastaukset 1
Vanhimmat
1) Tee kakkosformin oliosta globaali muuttuja. Tutki formia luotaessa onko formi jo olemassa, jos ei niin luo, jos on niin Activate().
Kakkosformille lisäät käsittelijän Closing() [tai Closed()] viestille ja kerrot siinä kutsuvalle formille että nyt minä poistuin, aseta muuttuja nulliksi.
-- snip ----
// muuttuja formille 1
private TokaIkkuna tokaIkkuna = null;
// Form1 buttonin käsittelijä ja public-funktio
private void btnToka_Click(object sender, System.EventArgs e)
{
if ( this.tokaIkkuna == null )
{
this.tokaIkkuna = new TokaIkkuna();
this.tokaIkkuna.AitiIkkuna = this;
this.tokaIkkuna.Show();
}
else
this.tokaIkkuna.Activate();
}
public void TokaIkkunaClosed()
{
this.tokaIkkuna = null;
}
// kakkosformille niinikään form-muuttuja
public Form1 AitiIkkuna = null;
// ja closing-viestin käsittelijä
private void TokaIkkuna_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
this.AitiIkkuna.TokaIkkunaClosed();
}
--- snip ---
2) Määrittele kakkosformille public funktio jota kutsut aina kun uusi arvo pitää päivittää. Tässä public-funktiossa sitten viet parametrina saamasi tiedon sinne minne pitääkin.
Tämä jää harjoitustehtäväksi, katso mallia edellisesstä.