Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 45

Передать значения из Form2 в Form1

25.02.2015, 11:21. Показов 7997. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В первой форме есть кнопка, вызывающая форму 2; В Форме 2 идет заполнение (public) текстбоксов, там есть кнопка, которая должна отправить все данные обратно в форму 1 и зыкрыться. Вот код:
Форма 1:
C#
1
2
3
4
5
6
7
8
9
private void button1_Click(object sender, EventArgs e)
        {
            Form ParamF = new Form2();
            ParamF.ShowDialog();
            string p1 = ???   //Я не знаю, что тут писать? (ParamF.textbox1.Text)
            string p2 = ???   //(ParamF.textbox2.Text)
            MessageBox.Show(p1);
            MessageBox.Show(p2);
        }
Форма 2:
C#
1
2
3
4
5
6
private void button1_Click(object sender, EventArgs e)
        {
            string p1 = textBox1.Text;
            string p2 = textBox2.Text;
            Close();
        }
Подскажите, где, что и куда надо дописать - я полностью новичок в этом деле, мне даже ответы на 7 самых частых вопросов не помогли.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2015, 11:21
Ответы с готовыми решениями:

Как передать значения из form2 в form1?
нужна помощь . решил тут сделать clicker то есть когда кликаешь на кнопку и прибавляется + 1 . потом меня занесло сделать магазин , в form2...

Как передать string из form1 в form2?
Как передать string из form1 в form2?

Как передать переменные из Form1 в Form2?
Здравствуйте форумчане :)! Как предать из Form1 в Form2 например: int a = 0; int b = 1; int c = 0; int d = 0; ...

6
25 / 25 / 10
Регистрация: 27.11.2011
Сообщений: 272
25.02.2015, 11:30
Необходимо при вводе данных на Form4 сохранять их в Form3
0
311 / 271 / 118
Регистрация: 05.06.2013
Сообщений: 868
25.02.2015, 11:58
Лучший ответ Сообщение было отмечено demcy как решение

Решение

Я делал по такому принципу:

На 2й форме делал текстбоксы public или объявлял публичную строку:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public partial class Form2 : Form
    {
        public string asd;
 
        public Form2()
        {
            InitializeComponent();
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            asd = TextBox1.text;
            this.Close();
        }
    }
Тогда на первой форме достать данные можно так:
C#
1
2
3
4
5
6
7
8
private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2();
            form.ShowDialog();
            param1 = form.textBox1.Text; // Обращаемся к самому public текстбоксу
            // или
            param2 = form.asd; // Обращаемся к public строке
        }
Насколько это правильно и как более правильно это делать пока меня не интересовало, оно работает - и хорошо.
1
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
25.02.2015, 12:17
Я извеняюсь) Но тема довольно часто поднимается. Так вот у меня пара вопросов:

1) Зачем использовать в приложении более одной офрмы???
2) если все же использовать несколько форм, то почему взаимодействие между ними не организовывать через интерфейсы?

может конечно я чего не допонимаю?
0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
25.02.2015, 13:27
Цитата Сообщение от Jefe Посмотреть сообщение
Насколько это правильно и как более правильно это делать пока меня не интересовало, оно работает - и хорошо.
Поля должны быть приватными. Это требования инкапсуляции.
Пока код маленький, это кажется ерундой.
Тогда лучше использовать свойство:

для Form1
C#
1
2
3
4
5
6
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
            string text = form2.Text;
        }
для Form2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public partial class Form2 : Form
    {
        public string Text  // это свойство
        {
            get
            {
                return textBox1.Text;
            }                       
        }
 
        public Form2()
        {
            InitializeComponent();
        }
    }
1
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 45
25.02.2015, 14:05  [ТС]
Спасибо Всем. Разобрался. Оказалось, что в форме 1 код для вызова формы должен выглядеть так:
Цитата Сообщение от Jefe Посмотреть сообщение
Form2 form = new Form2();
вместо моего
Цитата Сообщение от demcy Посмотреть сообщение
Form ParamF = new Form2();
Теперь я вижу все паблик переменные и контролы из второй в первой.

Цитата Сообщение от Sanya_sa Посмотреть сообщение
1) Зачем использовать в приложении более одной формы???
Мне нужно приостановить выполнение кода в первой форме пока кликаются и выбираются опции во второй.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
25.02.2015, 14:25
demcy, здесь есть все способы, как правильно сделать это: Ответы на 7 самых частых вопросов по WinForms
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2015, 14:25
Помогаю со студенческими работами здесь

Как передать данные из Form2 в Form1
Привет. Есть две формы. На Form1 находиться listView1 с столбцами "Имя" "Фамилия". Я открываю с помощью кнопки Form2, на нем есть два...

Передать данные из TexBox Form2 в ListView Form1
По нажатию на кнопку открывается форма2 там 3 текстбокса. Заполяю и передаю в Листвью первой формы. Форма 2 public partial class AddLog...

Передать в Form1 выбранную страну (CheckBox) из Form2
Недавно начал заниматься ООП на языке C#. Не могу связать два события: после выбора страны на форме2, ставим галочку в чекбоксе, нажимаем...

Как полностью передать datagridview из Form1 в Form2?
Есть например Form1 и Form2. У Form1 у меня datagridview заполненная данными которые берутся из файла. Нужно полностью передать...

Как передать данные между Form1 и Form2?
Есть клас Form1:Form. Надо передать значения в класс Form2 и назад. Как реализовать через get;set?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru