Передача параметрів між формами в c #

Часто виникає необхідність передати певні параметри між формами в одному додатку, наприклад значення будь-яких змінних, або запустити якусь процедуру або функцію в іншій формі. Тут я розповім про два методи вирішення цього завдання. Описані методи використовую сам, тому і публікую. Перший метод простіший, другий складніше але більш універсальний і з великими можливостями.

спосіб №1
Передача параметрів, використовуючи зв'язок між формами. (Цей метод назвав я так сам - може є і наукова назва).

Тут все досить просто. Припустимо з головної форми ми запускаємо іншу форму, від якої згодом хочемо отримати якісь дані, або бажаємо дозволити новоствореної формі виконати будь-які дії з першої. Те зробити ми це можемо так:

У головній формі (батьківської) запуск нової виробляємо ось таким чином:

Після такої дії в новій формі ми можемо звертатися до елементів батьківської форми, ось так:

Ось власне і весь спосіб, можна їм також передавати і просто змінні, але в разі коли треба зв'язати не дві форми а безліч, або складно простежити спорідненість між формами, простіше зробити другою методом.

спосіб №2
За подіями (Делегати)

1. Створюємо в основному namespace (це в файлі program.cs) клас:


2. Далі додаємо в форму приймач (їх може бути і декілька - що дуже зручно):

3. У формі джерелі генеруємо подію (там де це нам потрібно).

Таким способом можна обмінюватися даними між формами і запускати процедури і функції в інших формах, без будь-якого зв'язку між самими формами. При цьому можна змусити безліч схожих форм виконати однакові операції, що зручно.

Схожі статті