Передача данных между формами
На Form1 есть richTextBox1, и на Form2 есть richTextBox1, так вот хотелось бы сделать чтобы при нажатии на кнопку всё что есть в richTextBox1 на Form2 данные передавались в richTextBox1 на Form1. я попробовал изменить поле Modifer на Public, b таким кодом переместить данные
Но он почему-то не работает( Подскажите как передать данные между формами?
Всю необходимую форме (или любому объекту) информацию следует передавать в конструкторе:
UPD Также в классе Form есть свойсвто Owner , которому можно присвоить форму-владельца. В итоге дочерняя форма будет иметь доступ к родительской через это свойство.
Как вариант, можно использовать делегаты, и передавать данные через них.
![]()
В Form1 делаем richTextBox1 public. В ней же создаем экземпляр класса Form2
Далее, описываем метод:
Ну и собственно в Form2:
P.S. Этот вариант будет сразу же передавать весь текст в Form1, с кнопкой я думаю вы тоже разберетесь.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как передать значение из одной формы в другую c
![]()
Спрашивающий
Общие обсуждения
- Изменен тип I.Vorontsov 22 марта 2010 г. 11:23
- Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:58 MSDN Forums consolidation (От:Разработка Windows-приложений)
Все ответы
Я обычно делаю свойство или публичный член класса формы. Но тогда надо передавать сам объект формы. Можно сделать сторонний Static Class для обмена данными.
Это корректно или обычно делают как-то иначе?
Один из способов передачи параметров между формами:
— в первой форме ( Form 1) объявить public переменную с модификатором static , например:
static public int i;
— задать значение ей, например при загрузке формы:
— во второй форме можно обратиться к переменной, например вывести значение переменной в заголовок формы:
this .Text = Form1 .i.ToString();
На мой взгляд использовать сторонний Static Class целесообразно для "долгого" хранения переменных.
Если необходимо единовременно передать данные между формами, то делаю следующее:
1.В форму куда необходимо передать данные (ФормаКуда) в коде пишем:
public partial class ФормаКуда: Form
<
ФормаОтКуда mainForm = null;
public Otsrochka(ФормаОтКуда main)
<
InitializeComponent();
mainForm = main;
>
2. Вызываем ФормаКуда из ФормаОтКуда:
ФормаКуда FormNew = new ФормаКуда (this);
FormNew .ShowDialog();
3. Манипулируем данными в ФормаКуда через mainForm. При этом необходимо чтобы переменные в ФормаОтКуда были Public
C#: Обмен данными между формами
Многие, кто начинал изучение WinForm приложений, сталкивались с проблемой обмена данными между окнами программы. Обмен данными между формами сводится к трем основным принципам: передача параметров в форму, получение данных из формы, изменение значений другой формы. Начнем по порядку.
1) Передача параметров в форму. Любой класс, должен иметь конструктор, и WinForm в этом случае не исключение. А следовательно очевидным является тот факт, что передача данных необходимых для инициализации формы необходимо проводить именно через конструктор формы. Приведем пример.
Создадим WinForm и перейдем к коду. Наблюдаем следующую картину:
Допустим на данной форме размещен элемент textBox в который мы хотим установить значение, при открытии нашей формы. Тогда модифицируем наш код следующим образом:
Важно: Все действия, выполняемые с объектами формы должны быть произведены после функции InitializeComponent()!
2-3) По сути задача получения данных из формы и изменение данных в форме сводистя к одной задаче. Пусть у нас есть две формы Form1 и Form2. В первой форме у нас есть три кнопки: open, read, write . Первая откроет вторую форму, в которой есть элемент textBox, Вторая покажет сообщение с текстом, введенным в textBox формы номер два, третья очистит textBox из Form2. Имеем:
Отправлять значения из одной формы в другую
Я хочу передавать значения между двумя формами (c #). Как я могу это сделать?
У меня две формы: Form1 и Form2.
Form1 содержит одну кнопку. Когда я нажимаю на эту кнопку, должна открыться форма Form2, а форма Form1 должна находиться в неактивном режиме (т. Е. Недоступна для выбора).
Форма 2 содержит одно текстовое поле и одну кнопку отправки. Когда я ввожу какое-либо сообщение в текстовое поле формы 2 и нажимаю кнопку отправки, форма 2 должна закрываться, а форма Form1 должна выделяться переданным значением.
Как я могу это сделать? Может ли кто-нибудь помочь мне сделать это на простом примере.