Задать вопрос
@andrejfomenko

Как в c# сделать корректную обработку клика?

Есть форма 1 она создает форму 2, в форме 2 два textbox и кнопка, нужно сделать чтобы по клику этой кнопки данные из textbox1 записались в переменную 1, а textbox2 в переменную 2 и форма закрылась. Форма 2 запускается в отдельном потоке. Как правильно это реализовать? в частности обработчик button1.click += new EventHandler(method);
но в method() не получается взять данные из формы2 и закрыть ее тоже.
private void zapusk_form2(object sender, EvantArgs e)
{  
Thread tr = new Thread(go)
tr.Start();
}
public void go()
{
            Thread autent = new Thread(aut);
            autent.Start();
           .......
}
public void aut()
        {            
            Form2 auts = new Form2();
            auts.Show();
            auts.button1.Click += new EventHandler(metod);
        }
        public string login;
        public string pass;
        private void metod(object sender, EventArgs e)
        {
            login = auts.textBox1.Text;
            pass = auts.textBox2.Text;
            auts.Hide();

        }
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Держите проект.
Ваш логин в правильном ключе. Обратите внимание на докинг контролов во второй форме.
Ну и главное выделите глобальный объект в котором будет логика приложения. А на формах только присваивайте переменные. В общем как можно меньше кода в формах.
https://yadi.sk/d/Usu-r-Bo1955fQ
Ответ написан
BasiC2k
@BasiC2k
.NET developer (open to job offers)
По сути Вашего вопроса - сохраняйте полученные значения в глобальные переменные. Их можно вывести в отдельный модуль.
Немного лирики. У Вас совсем непотокобезопасный код. Для обращения к контролам и формам внутри потока всегда используйте invoke. Иначе возможны внезапные вылеты программы с ошибкой. Также для меня не совсем понятно - зачем запускать поток, который в свою очередь запускает другой поток...
Если потоки для Вас интересны, прочитайте эту замечательную статью: https://www.rsdn.org/article/dotnet/CSThreading1.xml
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы