Przekazywanie zmiennych między okienkami

0

Witam
Mam takie pytanie...chciałbym przekazać wartość zmiennej z jednego okienka do drugiego.
Kiedy zmienną w pierwszym oknie inicjalizuję statycznie to wszystko jest w porządku, ale kiedy kiedy ta inicjalizacja następuje dynamicznie to wówczas w drugim okienku się nie wyświetla.
W czym może być problem

1

Rozumiem, ze chodzi o przekazywanie danych miedzy formularzami? W takim razie polecam ten artykul. Jest tam dobrze opisane przekazywanie danych na kilka roznych sposobow.

A na przyszlosc to wklejaj kod, ktory Ci nie dziala. Ciezko z twojego opisu wywnioskowac o co tak naprawde chodzi.

0

Dzięki. O coś takie dokładnie mi chodziło..
Pozdrawiam

0

Nie mogę sobie poradzić jeszcze z jedną rzeczą...a mianowicie...
mam 2 formularze jak widać poniżej i w Form1 uruchamiam Form2 w którym wpisuje jakieś dane które chcę aby znalazły się w Form1, problem polega na tym, że nie wiem jak to zrobić, bo kiedy robię to w ten sposób, że uruchamiam nowy Form1 to wszystko jest w porządku, a chciałbym aby to wyświetlało się w starym. Możecie coś poradzić?

namespace Ekspansja
{
    public partial class Form1 : Form
    {
        public string zmienna1;
        public Form1()
        {
            InitializeComponent();
        }

        private void Plik_Opening(object sender, CancelEventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        public string pobierz_wartosc2
        {
            set { zmienna1 = value; }
        }
        private void nowaFunkcjaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = zmienna1;
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

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

        private void Form2_Load(object sender, EventArgs e)
        {
            label1.Text = "WPISZ POTRZBNE DANE";
            label2.Text = "Wymiar przestrzeni";
            label3.Text = "Wektor startowy";
            label4.Text = "Wzór funkcji";
            label5.Text = "Wektor startowy";
            label6.Text = "Wektor poszukiwań ξ";
            label7.Text = "Wartość początkowa kroku λ";
        }

        public string przekaz_wartosc2
        {
            get { return textBox2.Text; }
        }
        public string przekaz_wartosc3
        {
            get { return textBox3.Text; }
        }
        public string przekaz_wartosc4
        {
            get { return textBox4.Text; }
        }
        public string przekaz_wartosc5
        {
            get { return textBox5.Text; }
        }
        public string przekaz_wartosc6
        {
            get { return textBox6.Text; }
        }
        public string przekaz_wartosc7
        {
            get { return textBox7.Text; }
        }

        private void label1_Click(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form1 form = new Form1();
            form.pobierz_wartosc2 = przekaz_wartosc2;
            Close();
        }

        
    }
}
0

Chyba nie przeczytales artykulu, ktory Ci podsunolem.

Przesledz ponizszy przyklad. Niestety nie bede poprawiac twojego kodu.

Tworzymy Form1, ktory bedzie zawieral TextBox1 i Button1. Nastepnie tworzymy Form2, ktory bedzie zawierac ten sam zestaw kontrolek.

W kodzie Form2 dodajemy zmienna TextBoxForm1:

public partial class Form2 : Form
    {
        public TextBox textBoxForm1; 

        ...
     }

Nastepnie dodajemy zdarzenie Click dla Button1 w Form1:

 private void Button1_Click(object sender, EventArgs e)
        {
            Form2 drugiFormularz = new Form2();
            drugiFormularz.textBoxForm1 = this.textBox1; //przekazanie TextBox1 do Form2
            drugiFormularz.Show(); //wyswietlenie niemodalnego okna
        }

Do zmiennej textBoxForm1 w formularzu Form2 przekazujemy kontrolke textBox1 z formularza Form1.

Nastepnie dodajemy zdarzenie Clicl dla Button1 w Form2:

 private void Button1_Click(object sender, EventArgs e)
        {
           textBoxForm1.Text = textBox1.Text; 
        }

Spowoduje to wyswietlenie tekstu z TextBox1 z Form2 w TextBox1 w Form1.

Mam nadzieje, ze zrozumiales. I odsylam drugi raz do artykulu, do ktorego dostales linka.

1

Witam...ciągle nie mogę sobie poradzić z jedną rzeczą, a mianowicie:
W Form1 button uruchamiam mi Form2 w którym wpisuje jakąś daną i chce ją przekazać do Form1 i tu jest w porządku, ale następnie w Form2 uruchamiam button'em Form3 w którym też wpisuje daną, którą chce przekazać do Form1 i tu jest problem..mógłby ktoś spojrzeć na kod i ewentualnie poprawić:

namespace WindowsApplication7
{
    public partial class Form1 : Form
    {
        public TextBox text;
        public TextBox text1;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            text = new TextBox();
            text1 = new TextBox();
            Form2 form2 = new Form2();
            form2.txt = this.text;
           
            Form3 form3 = new Form3();
            form3.txt1 = this.text1;
            form2.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            label1.Text = text1.Text;
        }
    }
}

namespace WindowsApplication7
{
    public partial class Form2 : Form
    {
        public TextBox txt;
        
        public Form2()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            txt.Text = textBox1.Text;
            
            Form3 form3 = new Form3();
            
            form3.Show();
        }

        
    }
}

namespace WindowsApplication7
{
    public partial class Form3 : Form
    {
        public TextBox txt1;
        public Form3()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            txt1.Text = textBox1.Text;
            
            //Close();
        }
    }
}
0

Już mi działa....
Pozdrawiam

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