Problem przypisaniem TextBoxa do zmiennej

0

Dzień dobry, jestem dosyć początkujący w c# niedawno zacząłem się uczyć tego języka w okienkowym i mam pewien problem otóż nie mogę dostać się do zawartości textBoxa ponieważ za kazdym razem staje się on wartością 0 , null
Chciałbym, żeby moja zmienna string otrzymała wartość taką, jaka jest wpisana w textboxie
textBox znajduje się w innej klasie / formatce
próbowałem coś takiego :

    string imieKlienta;
    public void CzytajDane()
    {
        Form1 czytaj = new Form1();
        {
            imieKlienta = czytaj.textBox1.Text;
        }
    }

Lecz niestety nie działa to, w jakim sposób mogę inaczej zrobić, żeby moja zmienna otrzymała wartość z TextBoxa, który znajduje się w innej klasie niż moja zmienna? Z góry dziękuje za pomoc

0

No to Ci nie zadziala bo tworzysz nową forme, a wartość textboxa masz w starej. Najlatwiej bedzie ci utworzyc zmienną statyczną w swojej formie i wtedy mozesz sie odwolywać do niej poprzez nazwe klasy. Albo możesz przekazywać wartość tej zmiennej przez konstuktor klasy w której chcesz ją wykorzystać.

0

Zawartość tekstboksa pobierasz wtedy kiedy coś się stanie - user kliknie button, przy jakimś innym event'cie, w innej metodzie/funkcji.

To co napisałeś to w momencie tworzenia okna aplikacji (Form1) chcesz od razu pobrać zawartość tekstboksa - to nie ten moment.
Najpierw musi powstać Form1, potem user wypełnia tekstboksa, potem dopiero przy innym event'cie pobierasz zawartość kiedy ta już będzie ci potrzebna.

0

Może to Ci pomoże trochę zrozumieć co tam się dzieje pomiędzy dwoma obiektami podczas przekazywania ich referencji miedzy sobą:
Na Form1 leży tylko textBox1 i button1,
a na Form2 leży tylko label1 i button1 ktory jak nacisniesz pobierze tekst z textBoxa z Form1

Kod w Form1:

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

        public string TekstPobranyZTextBoxaZForm1()
        {
            return textBox1.Text;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 okienko = new Form2(this);
            okienko.Show();
        }
    }

kod w Form2.

    public partial class Form2 : Form
    {
        Form1 form;

        public Form2()
        {
            InitializeComponent();
        }

        public Form2(Form1 form)
        {
            InitializeComponent();
            this.form = form;
        }

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

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