C# ja lomakkeet

Nimimerkki

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?

1

232

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Koodin vääntäjä

      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ä.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Virkamiehille tarvitaan tuntuvat palkankorotukset

      Naistenpäivänä on syytä muistuttaa, että virkamiehen euro on vain 80 senttiä. Palkat tulee saattaa samalle tasolle yksi
      Maailman menoa
      42
      3900
    2. Riikka Purran kaudella nousi bensan hinta yli 2 euron

      Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal
      Maailman menoa
      39
      3486
    3. Jäikö meidän välit

      Mielestäsi Kesken?
      Ikävä
      70
      3108
    4. Olisipa saanut sinuun

      Tutustua paremmin. Harmi että aloin lopulta jännittämään kun näytit tunteesi niin voimakkaasti ja lähestyit niin voimaak
      Ikävä
      91
      2940
    5. Mitäs nyt sijoittajat?

      Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no
      Maailman menoa
      85
      1934
    6. Miks tän meidän

      Rakkauden on pitänyt olla näin vaikeaa?
      Ikävä
      35
      1928
    7. muista olla

      VAROVAINEN! m
      Ikävä
      24
      1769
    8. Onneksi on edes yksi kuva

      Susta mitä voin välillä ihastella ja kaipailla sua😔
      Ikävä
      32
      1713
    9. Elän vastoin

      Kaikkia arvoja kun en pysy sinusta erossa.
      Ikävä
      29
      1711
    10. Olisitpa se hellä

      Ja herkkä minkä kuvan sain sinusta irl. Haluaisin että elämässäni olisi sellainen joka arvostaa minua juuri sellaisena k
      Ikävä
      23
      1664
    Aihe