Visual Studio C# - form1 a form2 komunikace

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

kimi999
Level 4
Level 4
Příspěvky: 1103
Registrován: duben 11
Pohlaví: Muž
Stav:
Offline

Visual Studio C# - form1 a form2 komunikace

Příspěvekod kimi999 » 29 bře 2016 21:45

Zdravím,

mám menší problém, potřeboval bych aby mezi sebou komunikoval form1 a form2.
Ve form2 potřebuji aby šlo zobrazit (pouze zobrazit, žádný zápis apod.) jedno dvourozměrné pole a jedna int proměnná.
Ve form1 jsem nastavil proměnnou i pole jako "public", díky tomu vidím na form2 všechno co potřebuji.

Problém nastává ve chvíli, kdy na form1 cokoliv změním a chci se na to podívat přes form2, všechny data to bere jako základní, co jsem dal ještě do kódu a mnou změněná data ignoruje.

Např. form1 je v kódu nastavená promennaXY = 1, během běhu programu ji změním na 3, ale když ji chci zobrazit na form2, zobrazí se opět 1 (i když při krokování vidím na form1 stále 3).

Kód: Vybrat vše

namespace Zkouska
{
    public partial class form2 : Form
    {

        Form1 fm1 = new Form1();

       

        public form2()
        {
            InitializeComponent();

            label1.Text = fm1.promennaXY;

        }
    }
}



Budu vděčný za všechny rady.

Reklama
Uživatelský avatar
Eldan
Level 3.5
Level 3.5
Příspěvky: 691
Registrován: leden 16
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Visual Studio C# - form1 a form2 komunikace

Příspěvekod Eldan » 29 bře 2016 22:23

To bude proto, že máš dvě instance form1, jednu základní, která existuje jen pro form2 a druhou která je ta "správná".
Konkrétní chybu bych ti ukázal kdybys postl celý kód (jakože i ten form1).

Jak to fixnout: předpokládám, že form2 od někud inicializuješ. Tak mu přidej parametr do konstruktoru, kterým předáš referenci na form1 a přes kterou k němu pak budeš přistupovat. Asi takhle:

Kód: Vybrat vše

Form1:
--------------
Form form2;
public static string textProLabel = "";
private void startForm2() {
   this.form2 = new Form2(this);
   this.form2.Show();
}


Form2:
--------------
Form _parent;
public Form2(Form parent) {
   this._parent = parent;
   this.label1.Text = _parent.textProLabel;
}


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Visual studio 2022 Příloha(y)
    od Tondaaaa » 06 říj 2024 20:03 » v Vše ostatní (sw)
    3
    3356
    od faraon Zobrazit poslední příspěvek
    08 říj 2024 19:33
  • Zpětná komunikace z NTB na tiskárnu přes switch Příloha(y)
    od vasekpetr1 » 24 říj 2024 21:25 » v Sítě - hardware
    16
    9112
    od vasekpetr1 Zobrazit poslední příspěvek
    10 pro 2024 17:05
  • Android studio - Picovoice
    od BigSandy » 22 úno 2025 07:53 » v Programování a tvorba webu
    0
    5440
    od BigSandy Zobrazit poslední příspěvek
    22 úno 2025 07:53

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů