как передавать данные между формами c

Как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

Спрашивающий

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

Общие обсуждения

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

Все ответы

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

Я обычно делаю свойство или публичный член класса формы. Но тогда надо передавать сам объект формы. Можно сделать сторонний Static Class для обмена данными.

Это корректно или обычно делают как-то иначе?

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

Один из способов передачи параметров между формами:

static public int i;

— задать значение ей, например при загрузке формы:

— во второй форме можно обратиться к переменной, например вывести значение переменной в заголовок формы:

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

На мой взгляд использовать сторонний Static Class целесообразно для «долгого» хранения переменных.

Если необходимо единовременно передать данные между формами, то делаю следующее:

1.В форму куда необходимо передать данные (ФормаКуда) в коде пишем:

public partial class ФормаКуда: Form
<
ФормаОтКуда mainForm = null;
public Otsrochka(ФормаОтКуда main)

<
InitializeComponent();
mainForm = main;
>

2. Вызываем ФормаКуда из ФормаОтКуда:

Источник

Передача данных между формами

Это пошаговое руководство содержит инструкции по передаче данных из одной формы в другую. Используя таблицы Customers и Orders из Northwind, одна форма позволяет пользователям выбрать клиента, а вторая — заказы выбранного клиента. В этом пошаговом руководстве показано, как создать метод во второй форме, которая получает данные из первой формы.

Здесь демонстрируется всего один способ передачи данных между формами. Существуют и другие варианты передачи данных в форму, в том числе создание второго конструктора для получения данных или создание открытого свойства, которое можно задать с помощью данных из первой формы.

В данном пошаговом руководстве представлены следующие задачи.

Создание и настройка набора данных с помощью мастера настройки источника данных.

Выбор элемента управления, создаваемого на форме при перетаскивании элементов из окна Источники данных. Дополнительные сведения см. в разделе Установка элемента управления, создаваемого при перетаскивании из окна Источники данных.

Создание элемента управления с привязкой к данным с помощью перетаскивания элементов из окна Источники данных на форму.

Создание второй формы с сеткой для отображения данных.

Создание запроса адаптера таблицы для получения заказов определенного клиента.

Передача данных между формами.

Предварительные требования

в этом пошаговом руководстве используется SQL Server Express LocalDB и образец базы данных Northwind.

если у вас нет SQL Server Express LocalDB, установите его на странице загрузки SQL Server Expressили с помощью Visual Studio Installer. в Visual Studio Installer SQL Server Express LocalDB можно установить как часть рабочей нагрузки хранения и обработки данных или как отдельный компонент.

Установите учебную базу данных Northwind, выполнив следующие действия.

Откроется окно редактора запросов.

скопируйте скрипт Transact-SQL Northwind в буфер обмена. этот сценарий T-SQL создает базу данных Northwind с нуля и заполняет ее данными.

По истечении короткого времени выполнение запроса завершается и создается база данных Northwind.

создание проекта Windows Forms приложения

В Visual Studio в меню Файл выберите пункты Создать > Проект.

Назовите проект пассингдатабетвинформс и нажмите кнопку ОК.

Создается проект PassingDataBetweenForms, который добавляется в Обозреватель решений.

Создание источника данных

В окне Источники данных выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.

На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.

На странице Выбор модели базы данных выберите Набор данных и нажмите кнопку Далее.

На странице Выбор подключения к данным выполните одно из следующих действий.

Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.

Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение.

Если базе данных требуется пароль и выбран параметр для включения конфиденциальных данных, выберите параметр и нажмите кнопку Далее.

На странице Сохранение подключения в файле конфигурации приложения нажмите кнопку Далее.

Разверните узел Таблицы на странице Выбор объектов базы данных.

Выберите таблицы Customers и Orders и нажмите кнопку Готово.

NorthwindDataSet добавляется в проект, и таблицы Customers и Orders отображаются в окне Источники данных.

Создание первой формы (Form1)

Вы можете создать сетку с привязкой к данным (элемент управления DataGridView) с помощью перетаскивания узла Customers из окна Источники данных на форму.

Создание сетки с привязкой к данным на форме

Перетащите главный узел Customers из окна Источники данных на форму Form1.

На форме Form1 появляется DataGridView и панель инструментов (BindingNavigator) для перемещения по записям. В области компонентов появляется NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator.

Создание второй формы

Создайте вторую форму для передачи данных.

В меню Проект выберите пункт Добавить форму Windows.

Оставьте имя по умолчанию Form2 и нажмите кнопку Добавить.

Перетащите главный узел Orders из окна Источники данных на форму Form2.

На форме Form2 появляется DataGridView и панель инструментов (BindingNavigator) для перемещения по записям. В области компонентов появляется NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator.

Удалите OrdersBindingNavigator из области компонентов.

OrdersBindingNavigator исчезает из Form2.

Добавление запроса TableAdapter

Добавление запроса TableAdapter в форму Form2 для загрузки заказов выбранного клиента на Form1.

Дважды щелкните файл NorthwindDataSet.xsd в обозревателе решений.

Щелкните правой кнопкой мыши элемент OrdersTableAdapter и выберите пункт Добавить запрос.

Оставьте параметр по умолчанию Использовать инструкции SQL и нажмите кнопку Далее.

Оставьте параметр по умолчанию Инструкция SELECT, возвращающая строки и нажмите кнопку Далее.

Щелкните Далее.

Снимите флажок Вернуть таблицу данных (DataTable) и нажмите кнопку Далее.

Нажмите кнопку Готово.

Создание метода на Form2 для передачи данных

Щелкните правой кнопкой мыши Form2 и выберите пункт Просмотреть код, чтобы открыть Form2 в редакторе кода.

Добавьте следующий код в Form2 после метода Form2_Load :

Создание метода на Form1 для передачи данных и показа Form2

В Form1 щелкните правой кнопкой мыши сетку данных клиентов и выберите пункт Свойства.

В окне Свойства выберите События.

Дважды щелкните событие CellDoubleClick.

Откроется окно редактора кода.

Обновите определение метода в соответствии со следующим примером:

Запустите приложение

Нажмите клавишу F5 для запуска приложения.

Дважды щелкните запись клиента в форме Form1, чтобы открыть Form2 с заказами этого клиента.

Дальнейшие действия

В зависимости от требований приложения существуют несколько шагов, которые, возможно, потребуется выполнить после передачи данных между формами. Ниже приводится перечень рекомендаций, позволяющих улучшить полученный результат.

Изменение набора данных для добавления или удаления объектов базы данных. Дополнительные сведения см. в разделе, посвященном созданию и настройке наборов данных.

Добавление функциональности для сохранения данных в базу данных. Дополнительные сведения см. в разделе Сохранение данных обратно в базу данных.

Источник

Как передавать данные между формами c

Часто возникает необходимость передать определённые параметры между формами в одном приложении, например значения каких либо переменных, или запустить какую либо процедуру или функцию в другой форме. Здесь я расскажу о двух методах решения этой задачи. Описанные методы использую сам, поэтому и публикую. Первый метод попроще, второй посложнее но более универсальный и с большими возможностями.

Способ №1
Передача параметров, используя связь между формами. (этот метод назвал я так сам — может есть и научное название).

Здесь всё довольно просто. Предположим из главной формы мы запускаем другую форму, от которой впоследствии хотим получить какие либо данные, или желаем позволить вновь созданной форме выполнить какие либо действия с первой. То сделать мы это можем так:

В главной форме (родительской) запуск новой производим вот таким образом:

После такого действия в новой форме мы можем обращаться к элементам родительской формы, вот так:

Вот собственно и весь способ, можно им также передавать и просто переменные, но в случае когда надо связать не две формы а множество, или сложно проследить родство между формами, проще сделать вторым методом.

Способ №2
По событиям (Делегаты)

1. Создаём в основном namespace (это в файле program.cs) класс:

2. Далее добавляем в форму приёмник (их может быть и несколько — что очень удобно):

3. В форме источнике генерируем событие (там где это нам нужно).

Таким способом можно обмениваться данными между формами и запускать процедуры и функции в других формах, без всякой связи между самими формами. При этом можно заставить множество схожих форм выполнить одинаковые операции, что удобно.

Комментарии:

Большое спасибо автору статьи. В нете Это искал больше часа. Хоть кто-то человеческим языком объянил! (Специально зарегился чтобы спасибо сказать)

Два дня искал похожий пример. Я уж подумал пол интернета мусор пишут ерунду. Попробовав ваш пример и получилось и тут я и разтаял. Респект и уважуха admin.

А на С++ что-нибудь подобное делегатам реализуемо?

С C++ не помогу. Точно знаю что реализуемо. Но поскольку лично сам не пишу на нём, то детально не обрисую, что как делать. Если верить MSDN, не так уж и сложно.
Может вот это поможет: msdn.microsoft.com/ru-ru/library/system.delegate.aspx

Спасибо! тоже вчера искал искал и только здесь нашел вразумительное объяснение! СПАСИБО!

добрый день.
как-то совсем не получается первый способ,
компилятор ругается:
Error 3 ‘Databank_exp.MainForm.uid_main’ is inaccessible due to its protection level

В дочерней форме код такой:
MainForm g = (MainForm)this.Owner;
g.uid_main = «ла ла ла»;

Что это за защитный уровень, о котором говорит, компилятор и как это решить?
Если кто знает поделитесь, пожалуйста.

Переменная uid_main — public?

теперь да, исправил… спасибо

а во втором примере, если ругается в форме источнике на
CallBackMy.callbackEventHandler(«Передаваемые данные.»);
— Object reference not set to an instance of an object.

в чем может быть дело?

Без кода сложно сказать, но похоже на то что обработчик события не существует:

Ну и соответственно функция Reload — должна быть там, где обработчик события создаешь.

— Но это только предположение, код нужен чтобы точно сказать.

Источник

Как передавать данные между формами c

Часто возникает необходимость передать определённые параметры между формами в одном приложении, например значения каких либо переменных, или запустить какую либо процедуру или функцию в другой форме. Здесь я расскажу о двух методах решения этой задачи. Описанные методы использую сам, поэтому и публикую. Первый метод попроще, второй посложнее но более универсальный и с большими возможностями.

Способ №1
Передача параметров, используя связь между формами. (этот метод назвал я так сам — может есть и научное название).

Здесь всё довольно просто. Предположим из главной формы мы запускаем другую форму, от которой впоследствии хотим получить какие либо данные, или желаем позволить вновь созданной форме выполнить какие либо действия с первой. То сделать мы это можем так:

В главной форме (родительской) запуск новой производим вот таким образом:

После такого действия в новой форме мы можем обращаться к элементам родительской формы, вот так:

Вот собственно и весь способ, можно им также передавать и просто переменные, но в случае когда надо связать не две формы а множество, или сложно проследить родство между формами, проще сделать вторым методом.

Способ №2
По событиям (Делегаты)

1. Создаём в основном namespace (это в файле program.cs) класс:

2. Далее добавляем в форму приёмник (их может быть и несколько — что очень удобно):

3. В форме источнике генерируем событие (там где это нам нужно).

Таким способом можно обмениваться данными между формами и запускать процедуры и функции в других формах, без всякой связи между самими формами. При этом можно заставить множество схожих форм выполнить одинаковые операции, что удобно.

Комментарии:

Большое спасибо автору статьи. В нете Это искал больше часа. Хоть кто-то человеческим языком объянил! (Специально зарегился чтобы спасибо сказать)

Два дня искал похожий пример. Я уж подумал пол интернета мусор пишут ерунду. Попробовав ваш пример и получилось и тут я и разтаял. Респект и уважуха admin.

А на С++ что-нибудь подобное делегатам реализуемо?

С C++ не помогу. Точно знаю что реализуемо. Но поскольку лично сам не пишу на нём, то детально не обрисую, что как делать. Если верить MSDN, не так уж и сложно.
Может вот это поможет: msdn.microsoft.com/ru-ru/library/system.delegate.aspx

Спасибо! тоже вчера искал искал и только здесь нашел вразумительное объяснение! СПАСИБО!

добрый день.
как-то совсем не получается первый способ,
компилятор ругается:
Error 3 ‘Databank_exp.MainForm.uid_main’ is inaccessible due to its protection level

В дочерней форме код такой:
MainForm g = (MainForm)this.Owner;
g.uid_main = «ла ла ла»;

Что это за защитный уровень, о котором говорит, компилятор и как это решить?
Если кто знает поделитесь, пожалуйста.

Переменная uid_main — public?

теперь да, исправил… спасибо

а во втором примере, если ругается в форме источнике на
CallBackMy.callbackEventHandler(«Передаваемые данные.»);
— Object reference not set to an instance of an object.

в чем может быть дело?

Без кода сложно сказать, но похоже на то что обработчик события не существует:

Ну и соответственно функция Reload — должна быть там, где обработчик события создаешь.

— Но это только предположение, код нужен чтобы точно сказать.

Источник

Передача данных между формами

Здравствуй ХэшКод, скажите у меня есть

На Form1 есть richTextBox1, и на Form2 есть richTextBox1, так вот хотелось бы сделать чтобы при нажатии на кнопку всё что есть в richTextBox1 на Form2 данные передавались в richTextBox1 на Form1. я попробовал изменить поле Modifer на Public, b таким кодом переместить данные

Но он почему-то не работает( Подскажите как передать данные между формами?

3 ответа 3

Всю необходимую форме (или любому объекту) информацию следует передавать в конструкторе:

Как вариант, можно использовать делегаты, и передавать данные через них.

как передавать данные между формами c. Смотреть фото как передавать данные между формами c. Смотреть картинку как передавать данные между формами c. Картинка про как передавать данные между формами c. Фото как передавать данные между формами c

В Form1 делаем richTextBox1 public. В ней же создаем экземпляр класса Form2

Далее, описываем метод:

Ну и собственно в Form2:

P.S. Этот вариант будет сразу же передавать весь текст в Form1, с кнопкой я думаю вы тоже разберетесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# или задайте свой вопрос.

Связанные

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.11.18.40788

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *