Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/656: Рейтинг темы: голосов - 656, средняя оценка - 4.58
4 / 4 / 1
Регистрация: 12.10.2010
Сообщений: 32

Передача данных из одной формы в другую

21.10.2010, 23:10. Показов 131683. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! У меня возникла следующая проблема: есть две формы, одна основная, на которой находится DataGridView для отображения данных. По нажатию кнопки "Добавить" на этой форме появляется вторая форма, на которой находятся TextBox-ы. Так вото вопрос в следующем: Как передать данные со второй формы в первую?
Так как в на первой форме у меня уже сть строка подключения к БД и там я хочу добавить данные в БД.
Или если это неудачное решение, то можно ли как нибудь из первой формы выудить строку подключения к БД и соответственно уже в ней написать аксесс к БД и добавить в нее данные?
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2010, 23:10
Ответы с готовыми решениями:

Передача данных из одной формы в другую
Здравствуйте! Возникла такая задача: из Формы1 вызываем Форму2 там вводим некоторые данные. Затем по кнопке "Готово" Форма2...

Передача данных из одной формы в другую
Всем привет. Как правильно организовать передачу данных из одной программы в другую? class Program { static...

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

13
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
21.10.2010, 23:20
FAQ пункт 2.
1
4 / 4 / 1
Регистрация: 12.10.2010
Сообщений: 32
21.10.2010, 23:21  [ТС]
Спасибо!
0
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
27.11.2010, 00:23
Заранее прошу на FAQ не отсылать я его читал. Нужно передать значение из Form1 по нажатии на лэйбл в лэйбл формы2
В форме 2 создаю делегата
C#
1
2
public delegate void MyLabelClickedHandler(string text);
                public MyLabelClickedHandler LabelText;
В форме 1 создаю метод вычисляющий значение
C#
1
2
3
4
5
6
7
8
9
        void Relation_RtoS(string text)
            {
                double RdivideS, Rpunch, Weight;
                Weight = Double.Parse( textBox2.Text );
                Rpunch = Double.Parse( textBox1.Text );
                RdivideS = Rpunch / Weight;
                Label myLabel = new Label();
                myLabel.Text = "R/S=" + RdivideS;
            }
и обработчик для лэйбла
C#
1
2
3
4
5
6
        private void label12_Click( object sender, EventArgs e )
            {
            Form2 form2 = new Form2();
            form2.LabelText = new Form2.MyLabelClickedHandler(Relation_RtoS);
            form2.ShowDialog();
            }
в форме 2 создаю обработчик
C#
1
2
3
4
        private void Form2_Load( object sender, EventArgs e )
            {
                label2.Text = ;\\как присвоить значение?????????????????????????
            }
что я делаю не так???
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
27.11.2010, 13:50
полная билиберда, зачет тут делегаты, если ты по нажатию создаешь экземляр второй формы.


C#
1
2
3
4
5
6
7
  private void label1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.label1.Text = label1.Text;
            f2.ShowDialog();
 
        }
предварительно установи на label во второй форме свойство modifers в public
2
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
27.11.2010, 16:18
Делегаты для того чтобы не делать label публичным. Я только начинаю учиться, и везде читаю что делать объекты публичными не правильно. Разве нельзя сделать это без присвоения label публичности.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
27.11.2010, 17:43
Цитата Сообщение от pegasus Посмотреть сообщение
чтобы не делать label публичным
для этого можно воспользоваться свойствами. Почитай все-таки Ответы на 7 самых частых вопросов по WinForms, там все подробно расписано.
1
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
27.11.2010, 23:16
Из FAQ по формам. хочу всё таки разобраться с делегатами
2.7.1 Передача метода в конструктор
Создаем в основном namespace делегат
Код C#1
C#
1
public delegate void MyDelegate(string data);
В Form1 создаем метод, который будет обрабатывать принятые данные
Код C#1
C#
1
2
3
4
5
6
2
3
4   void func(string param)
{
    // обработка
}
Создаем вторую форму так:
Код C#1
C#
1
2
2   Form2 f = new Form2(new MyDelegate(GetData));
f.ShowDialog();
При этом изменяем конструктор второй формы, чтобы он принимал делегат
Код C#1
C#
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6   MyDelegate d;
public Form2(MyDelegate sender)
{
    InitializeComponent();
    d= sender;
}
И в любой момент отправляем данные
Код C#1
C#
1
d(textBox1.Text);
Тут описывается, как я понял, передача данных из Form2 в Form1!? Это я реализовал. Но вот, как это не смешно выглядит, из Form1 в Form2 передать не могу.
По примеру:
"В Form1 создаём метод который будет обрабатывать принятые данные" тоесть если мне надо принять данные в Form2 то этот метод я создаю во второй форме?
Далее я вообще с трудом понимаю. Нужно ли мне создавать в первой форме экземпляр второй формы? И что и где мне вообще нужно создавать?

Пожалуйста разъясните, в голове полная "каша".

И ещё основная проблемма в понимании сего состоит в том, что мне нужно предать не текст из одного лэйбла в другой, а результат вычисления значений. Тоесть нужно взять данные из первой формы а результат их сложения, деления и т.п. передать в лэйбл второй формы.
0
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
29.11.2010, 22:22
Ну хоть убей, не въезжаю. Как передать результат из метода формы1:
C#
1
2
3
4
5
6
7
void Relation_RtoS(string text)
            {
                double RdivideS, Rpunch, Weight;
                Weight = Double.Parse( textBox2.Text );
                Rpunch = Double.Parse( textBox1.Text );
                RdivideS = Rpunch / Weight;
            }
в лэйбл формы 2.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
30.11.2010, 08:39
Тебе 3 раза показали FAQ с советами как это сделать

Показываю метод передачи данных из родительской в дочернюю форму через свойства
на первой форме пишешь:
C#
1
2
3
4
5
6
Form2 f2 = new Form2();
 
        private void button1_Click(object sender, EventArgs e)
        {
            f2.LabelText = "heohtraerhaqregja";
        }
на второй пишешь свойство:
C#
1
2
3
4
5
public string LabelText
        {
            get { return label1.Text; }
            set { label1.Text = value; }
        }
0
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
30.11.2010, 19:54
C FAQ я разобрался и написал что проблемма передать данные из метода который я привёл
C#
1
2
3
4
5
6
7
void Relation_RtoS()
            {
                double RdivideS, Rpunch, Weight;
                Weight = Double.Parse( textBox2.Text );
                Rpunch = Double.Parse( textBox1.Text );
                RdivideS = Rpunch / Weight;
            }
в лэйбл.
конкретизирую: приведеный мной метод получает значение типа double, а лэйбл принимает string. Я могу передать текст из label1 формы1 в label1 формы2, а как если в форме1- label1 не существует. Тоесть в форме1 происходят вычисления, а результат этих вычислений надо преобразовать в текст и передать в label формы2. Надеюсь что вы поймёте о чём я прошу.
0
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
01.12.2010, 21:31
Вот что у меня получилось
C#
1
2
3
4
5
6
7
 private void label12_Click( object sender, EventArgs e )
            {
            Form2 form2 = new Form2();
            form2.MyLabelClicked += new MyLabelClickedHandler(form2_MyLabelClicked);
            form2.form2_LabelText("текст");
            form2.ShowDialog();
            }
слово "текст" передаётся, а вот при попытке предать значение вычисляемое в методе не удаётся. Ругается на то, что невозможно преобразовать double в string. Что можно сделать?
0
4 / 4 / 0
Регистрация: 18.11.2010
Сообщений: 35
02.12.2010, 23:06
Всё вопрос снимаю- разобрался. Урррра!!!!!!!
0
 Аватар для ForestG
39 / 39 / 9
Регистрация: 21.11.2009
Сообщений: 201
24.03.2011, 22:55
Вот еще прикольный способ передачи данных...
В классе Program.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    static class Program
    {
       // public static Form2 f2;
        public static Form1 f1; //Создаем экземпляр класса Form1
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Инциализируем :)
            Application.Run(f1 = new Form1());
          
        }
    }
}
И теперь можно обратиться к f1 (к Form1) из любого места
C#
1
Program.f1.rich1.Text = this.textBox1.Text;
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2011, 22:55
Помогаю со студенческими работами здесь

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

Передача данных из одной формы, в другую
https://www.cyberforum.ru/windows-forms/thread110436.html Читал тему. Интересует способ 2.5 При передачи из формы 2 в форму 1...

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

Передача данных из одной формы в другую
Привет! Может сможет кто-то помочь, нужно по заданию сделать ограничение на длину пароля пользователя, чтобы была не меньше длинны,...

Передача данных из одной формы в другую
Сейчас пишу курсовую и нужно чтоб с Form2(там считываются данные с 3 textbox'a), данные передались в Form3(визуализацию).Прочитал тему...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru