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
  • Android studio
    od L.L » 25 lis 2023 10:52 » v Programování a tvorba webu
    5
    1278
    od petr22 Zobrazit poslední příspěvek
    26 lis 2023 10:05

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 2 hosti