Jak przekazać wartość zmiennej z Form2 do Form1

0

Wywołuję Form2 (FormKategorie) tak

 
int kat = 0; //zmienna globalna
        private void button2_Click_1(object sender, EventArgs e)
        {
            FormKategorie formk = new FormKategorie();
            new System.Threading.Thread(
                    new System.Threading.ThreadStart(
                    delegate { formk.ShowDialog(); })
                                        ).Start();
        }

W Form2 mam

 
private void PrintRecursive(TreeNode treeNode) //iteracja
        {
            if (treeNode.IsSelected)
            {
                Form1.kat = treeNode.Tag; //tutaj przypisanie do zmiennej z Form1
                
            }
            foreach (TreeNode tn in treeNode.Nodes)
            {
                PrintRecursive(tn);
            }
        }
2

Taki temat pojawia się co najmniej 1-2 razy w miesiącu.

class Form1
{
    public int Liczba {get;set;}
    public OtwórzForm2
    {
        var f2 = new Form2(this);
        f2.Show();
    }
}
class Form2
{
    Form1 głównaForma;
    public Form2(Form1 głównaForma)
    {
        this.głównaForma = głównaForma;
    }
    
    void ZróbCośZGłównejFormy()
    {
        głównaForma.Liczba++;
    }
}
1

formy nie da się odpalić w wątku - to tak nie działa

0

nie wiem czy tak nie działa ale główna forma się nie zacina podczas ładowania danych do form2

0

W c# operacje na GUI możesz wykonywać tylko z wątku głównego.

0

Tworzysz metodę ładującą dane w nowym wątku i wywołujesz ją przez Invoke.

1 użytkowników online, w tym zalogowanych: 0, gości: 1