0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15

Взаимосвязь 3-х форм

06.05.2014, 01:03. Показов 3662. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи, дамы и господа, я долго искал решение в данном ресурсе и в итоге мои поиски не увенчались успехом.
Суть проблемы такова: 1-я форма главная, из неё вызываю 2-ю, в которой представляется информация, взятая из DGV 1-й формы (на данном этапе полёт нормальный), во второй форме по нажатию кнопки открывается третья, в которой используется информация из 2-й (полёт так же нормальный) и после редактирования должна записываться обратно в DGV 1-й формы(вот тут происходит конфуз).
И я даже понял, почему такой конфуз происходит.
после запуска 3-й формы, 1-ю, как лок. переменную, он видит как null. как от этого избавиться?
Миниатюры
Взаимосвязь 3-х форм  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2014, 01:03
Ответы с готовыми решениями:

Взаимосвязь форм
ЗАдача такая! Помогите прошу! Основная форма не запускается пока во второй форме я не введу 2 переменных и их перенесет в основную...

Взаимосвязь проектов
У меня есть решение, в котором несколько проектов. Один из проектов создает dll-ку, которая должна получать некоторые параметры из главного...

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

53
06.05.2014, 13:40
Студворк — интернет-сервис помощи студентам

Не по теме:

nio, так задачка же элементарная... public свойство c private сеттером, и обработчик изменения контрола, присваивающий необходимое значение свойству в момент его изменения. Это первое что в голову пришло.

0
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295
06.05.2014, 14:14
Ну ладно, покажите мне полный рабочий код с вашими примерами передачи данных, если Вы такие крутые программеры
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.05.2014, 14:30
Цитата Сообщение от SoloWay Посмотреть сообщение
покажите мне полный рабочий код с вашими примерами передачи данных, если Вы такие крутые программеры
Может быть, тебе дать еще ключ от квартиры, где деньги лежат? ©
SoloWay, и не слишком ли наглое требование, учитывая что тема не Ваша?
Более того ссылка приведённая мной решает проблему (при чём несколькими способами) передачи данных между формами (классами). Для человека желающего разобраться в проблеме этого вполне достаточно.
0
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295
06.05.2014, 14:36
Господа не "дети", покажите код который работает с вашими примерами, именно полный код программы а не 2-3 строчки, а то все горазды критиковать

Добавлено через 2 минуты
ключи мне от вашей квартиры не нужны
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 14:42
nio, да ладно вам... Будет пример.)))
SoloWay, вот он. Форма 1 (основная). На форме кнопка (по ее нажатию вызывается вторая форма) и текстовое поле.
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
26
27
28
29
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += delegate(object sender, EventArgs e)
            {
                Form2 F2 = new Form2();
                F2.From2_Event += delegate(object s, MyEventArgs ex)
                {
                    textBox1.Text = ex.Message;
                };
                F2.Show();
            };
               
        }
    }
}
И форма 2, на ней только текстовое поле. Она вызывается из первой формы. Но когда она вызвана, все что вводишь в ее текстовое поле автоматом копируется в текстовое поле формы 1.
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
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public event EventHandler<MyEventArgs> From2_Event;
        public Form2()
        {
            InitializeComponent();
            textBox1.TextChanged += delegate(object sender, EventArgs e)
            {
                if (From2_Event != null)
                    From2_Event(this, new MyEventArgs(textBox1.Text));
            };
        }
    }
    public class MyEventArgs : EventArgs
    {
        public readonly string Message;
        public MyEventArgs(string msg)
        {
            Message = msg;
        }
    }
}
Проверяйте. И этот прием, естественно, можно хоть на десяток форм использовать...
1
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295
06.05.2014, 14:45
insite2012, Ваш код выглядит более вменяемо, чем выше приведенные примеры
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.05.2014, 14:46
Пример "общения" через свойства
на первой форме в методе запускающем вторую форму:
C#
1
2
3
4
var f2 = new Form2();
f2.TextInRTB = "Это текст переданный с формы 1 на форму 2";
f2.ShowDialog();// во второй форме поменять текст
MessageBox.Show(string.Format("Текст полученный со второй формы: {0}", f2.TextInRTB));

на второй: (на форме должен быть richTextBox1)
C#
1
2
3
4
5
public TextInRTB
{
get { return richTextBox1.Text; }
set { richTextBox1.Text = value; }
}
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 14:47
SoloWay, это стандартный пример использования событий. В нем нет ничего необычного и невозможного. События использованы специально, для передачи данных в реальном времени.
0
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15
06.05.2014, 15:27  [ТС]
у меня DGV связан с БД, обновление данных идёт через dataadapter.update, я бы рад сделать по-умному, да вот только опыта и знаний пока не хватает для этого, поэтому я и хочу внести изменения в DGV, а затем уже апдейтить в БД.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 15:45
booleanhater, я не вижу вашей реализации, но могу предложить обновлять данные в кэше (DataSet), его передавать из формы в форму и информацию из него заносить в datagrid.
0
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15
06.05.2014, 18:12  [ТС]
Благодарю за помощь, однако таковой вариант предполагает почти полную переработку проекта, на что у меня не хватит ни времени, ни нынешних знаний. По сути я в C# почти полный 0, эту среду я встретил впервые.
В любом случае я решил эту проблему иным путём, я из 3-й формы загружаю информацию ообратно во 2-ю, а во 2-й уже в DGV 1-й. Тут меня постигла новая неудача: в DGV некоторые ячейки хранят информацию типа nvachar, а я туда пытаюсь залить полученные при редактировании данные типа string, я уже понял, что надо их перебить в char, только вот как это лучше сделать?
вопрос этот меня терзает не потому что я не могу представить строку как массив символов, а потому что потом оно в DGV будет выглядеть так: "Массив char[]"
или посимвольно прибавлять к ячейке DGV символы из строки?
и еще, какой лучше сделать триггер для изменения?
C#
1
private void textBox1_TextChanged(object sender, EventArgs e)
не подойдет, т.к. при установке курсора на строку изменения(что делается автоматически) триггер срабатывает.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 18:22
booleanhater, а вы расскажите, почему у вас такая сложная логика-3 формы, из одной в другую... Это действительно необходимо? Может можно как-то оптимизировать проект?
0
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15
06.05.2014, 18:32  [ТС]
Хозяин - барин)
проект у меня является курсовой работой.
суть проекта - создать программное обеспечение, обрабатывающее базу данных, и саму БД, естественно, тоже создать.
изощрённая архитектура программы есть ни что иное, как результат прихоти моей преподавательницы.
с другой стороны её можно понять, она хочет мне поставить 5, но заслуженную, т.е. чтоб я сделал продукт такого уровня, чтоб любой не имевший с этой программой общения пользователь смог её запустить и сделать свои дела без особых задумок на тему "какого №#я тут так всё сложно?!".
Именно поэтому в 1-й форме у меня чистое представление БД через DGV, пару кнопок(добавление, удаление, редактирование), менюстрип и контексменюстрип удалось реализовать. Во 2-й форме представление полной информации по одной записи (+представление, удаление, добавление фото к записи +кнопка редактирования, которая уже вызывает 3-ю форму).
Если есть особое желание, могу скинуть проект или же определенные части кода.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 18:42
booleanhater, лучше ТЗ. Ваш код мне мало что скажет, а вот само задание интересует. Какой тип БД можно использовать?
1
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15
06.05.2014, 19:00  [ТС]
Microsoft® SQL Server® Compact
локальная база данных с расшинением .sdf
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 19:03
booleanhater, понятно. А описание с полным ТЗ имеется?
0
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15
06.05.2014, 19:18  [ТС]
Теоретическим Заданием?
если да, то врятли, формально заданием является разработка ПО, выполняющего прикладную задачу, коей в моём случае является обслуживание базы данных учителей в школе.
остальные заморочки - чистого рода советы, в какую сторону мне двигаться (в смысле как это должно будет выглядеть в итоге)

По актуальному для меня вопросу: можно ли как-то обратиться к текстБоксу, чтоб его значение выводилось обратно с таким же типом, как и вводилось?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 19:29
booleanhater, ну так вот уже, значит БД учителей. Откуда вы взяли про именно 3 формы? Тоже указание. Вот и расскажите, как вы видите готовую реализацию проекта (формы, контролы, где и какие, что делают и т.д.).
1
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 15
06.05.2014, 19:48  [ТС]
Преподавательница сказала, что желает видеть результат след. образом:
в 1-й форме только представление таблицы, т.е. DGV

по щелчку, либо нажатию кнопки, либо выбору эл-та контекстного меню, происходит вызов 2-й формы, в которой будет полная информация по выбранной строке DGV 1-й формы (т.е. досье одного из учителей).

Это мной было сделано, только вот на тот момент я все изменения, кроме загрузки или удаления фотографии учителя(что делалось во 2-й форме), делал непосредственно в DGV 1-й.

Принёс, показал, говорит - плохо! Изменения надо производить из 2-й формы, где полностью уже есть вся информация по опред. учителю.
Ну я и решил создать 3-ю форму, и я это уже почти доделал, остались маленькие нюансы.

одним из такий сейчас является "склеивание" двух переменных типа char, (я хочу в ячейку DGV в цикле записывать символы изменной строки, путём суммирования).
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.05.2014, 20:00
booleanhater, я подумаю. Может что и придумается. Сроки сдачи работы? Наверное, еще вчера?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2014, 20:00

Взаимосвязь SslClient с lsass.exe
Дело в том что в софте используется некоторые классы из System.Security.Cryptography и SslClient, который в нескольких потоках подключается...

Передать из форм 1, в форм 3.
я перелазил весь форум но так и непонял как передать инфу с textbox3 в textbox1. (из 3 формы в 1) розъясните,

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

Связывание двух форм по расположению на мониторе(Синхронизация форм)
Такая проблема, представим если 2 формы, на первой форме есть клавиша &quot;На вторую форму&quot;, которая будет иметь код: ...

Как по закрытию форм 2 сделать определенное действие в форм 1?
Здравствуйте! Помогите пожалуйста, я новичок в ) Столкнулся с проблемой и не смог найти ответа на форумах. В кратце- есть 2 формы....


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru