Przekazywanie danych cyklicznie miedzy formami

0

Witam.
Mam problem z przekazywaniem danych miedzy formami i nie potrafię nigdzie znaleźć rozwiązania.
Potrzebuje cyklicznie przekazać dane pomiędzy forma f1 i f2, dane maja płynąc z formy f1 do formy f2 ciągle i nie potrafię poradzić się z tym, że przy każdym wpisaniu tekstu i naciśnięciu przycisku ukazuje mi się nowe okno formy f2 a potrzebuje aby dane były przekazane do raz już otwartej formy.

public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            
            Form2 b = new Form2(textBox1.Text);
            
            b.Show();
            
            
        }
    }
}
public partial class Form2 : Form
    {
     

        public Form2(string daneForm1)
        {
            string dane = daneForm1;
            InitializeComponent();
            textBox1.Text = dane;
           
        }

    } 
4
public partial class Form1 : Form
         private void button1_Click(object sender, EventArgs e)
        {
            Form2 b = new Form2(textBox1.Text);
            b.Show();       
        }

 

Za każdym razem tworzysz nowy obiekt klasy, dlatego masz taki efekt.

Możesz zrobić tak:
Obiekt klasy Form2 utwórz raz, dodaj w klasie Form2 metodę odświeżającą tekst (z parametrem przyjmującym tekst to wyświetlenia), w zdarzeniu button1_Click wywołuj ta metodę.

2

O to o czym pisał hipekk,

public partial class Form1 : Form
    {
        Form2 childForm = new Form2();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            childForm.UpdateText(textBox1.Text); 
            childForm.Show();
        }
    }
}

public partial class Form2 : Form
    { 
        public Form2()
        {
            InitializeComponent();
        }

        public UpdateText(string daneForm1)
        {
            textBox1.Text = daneForm1;
        }
    } 
0

Dzięki . Działa tak jak powinno ;)

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