Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 13.02.2021
Сообщений: 160
.NET 4.x

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

27.01.2022, 14:11. Показов 2441. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создайте еще одно окно, которое будет дочерним ( FormEmployee ). Для этого выберите пункт меню Project/Add Windows Form.

Это окно должно вызываться из пункта главного меню "Сотрудник". Вставьте код, подобный следующему, чтобы создать новую MDI дочернюю форму, когда пользователь щелкает на пункте меню, например "Сотрудник" - имя объекта - employeeToolStripMenuItem (В примере ниже, указатель события обращается к событию Click для employeeToolStripMenuItem_Click ).

private void menuItemEmploye_Click(object sender,
System.EventArgs e)
{ // Создать объект FEmployee класса FormEmployee
FormEmployee FEmployee = new FormEmployee();
// Установить родительское окно для дочернего
FEmployee.MdiParent = this;
// Вывести на экран дочерее окно
FEmployee.Show();
}
Данный обработчик приведет к выводу на экран дочернего окна.

Создание меню в дочерней форме
Добавьте в дочернее окно пункт меню "Действие" ( actionToolStripMenuItem ) с подпунктами "Отменить" ( undoToolStripMenuItem ), "Создать" ( createToolStripMenuItem ), "Редактировать" ( editToolStripMenuItem ), "Сохранить" ( saveToolStripMenuItem ) и "Удалить" ( removeToolStripMenuItem ). Перед пунктом удалить вставьте разделитель ( Separator - name = toolStripSeparator1 ).

Добавьте в дочернее окно еще один пункт меню "Отчет" ( reportToolStripMenuItem ) c подпунктами "По сотруднику" ( reportToolStripMenuItem1 ), "По всем сотрудникам" ( reportToolStripMenuItem2 ).2. В главном меню родительской формы ( Form1 ) установим пункты
"Объект", "Справочник" и "Справка". В дочерней форме ( FormEmployee )
сформированы пункты меню "Действие" и "Отчет". При загрузке дочерней
формы меню родительской и дочерних форм должны были объединится и
составлять следующую последовательность: "Объект", "Действие", "Отчет", "Справочник" и "Справка". Объединение пунктов меню производится
с помощью задания значений свойств MergeAction и MergeIndex для объектов ToolStripMenuItem.
3. Установим в меню главного окна для объекта
objectToolStripMenuItem свойство MergeAction – Append, а MergeIndex –
0, а для объектов dictionaryToolStripMenuItem и helpToolStripMenuItem -
соответственно 1 и 2. С учетом этого, в окне "Сотрудник" для объектов
actionToolStripMenuItem (Действие) и "Отчет" ( reportToolStripMenuItem )
свойству MergeAction необходимо задать значение Insert, а свойству
MergeIndex задаем порядковый номер, который определяет позицию данного пункта меню обновленном главном меню, т.е. 1 (после объекта
objectToolStripMenuItem ).
После компиляции программы, запуска ее на выполнение и вызова
пункта меню "Сотрудник" В главном меню родительской формы ( Form1 ) имеются пункты "Объект", "Справочник" и "Справка". В дочерней форме ( FormEmployee ) сформированы пункты меню "Действие" и "Отчет". При загрузке дочерней формы меню родительской и дочерних форм должны были объединены и составлять следующую последовательность: "Объект", "Действие", "Отчет", "Справочник" и "Справка". Объединение пунктов меню производится с помощью задания значений свойств MergeAction и MergeIndex для объектов ToolStripMenuItem.

Проверьте, чтобы в меню главного окна для объекта objectToolStripMenuItem свойство MergeAction было установлено Append, а MergeIndex было равно 0, а для объектов dictionaryToolStripMenuItem и helpToolStripMenuItem - соответственно 1 и 2. С учетом этого, в окне "Сотрудник" для объектов actionToolStripMenuItem (Действие) и "Отчет" ( reportToolStripMenuItem ) свойству MergeAction необходимо задать значение Insert, а свойству MergeIndex задаем порядковый номер который определяет позицию данного пункта меню обновленном главном меню, т.е. 1 (после объекта objectToolStripMenuItem ).

Создание дочерней формы
Основа Интерфейса ( MDI ) приложения - MDI родительская форма. Это - форма, которая содержит MDI дочерние окна. Дочерние окна являются "подокнами", с которыми пользователь взаимодействует в MDI приложении. Создание MDI родительской формы описано в "Создание главного меню приложения" .

Для определения главного окна ( Form1 ), как родительской формы в окне Свойств, установите IsMDIContainer свойство - true. Это определяет форму как MDI контейнер для дочерних форм. Для того чтобы родительское окно занимало весь экран необходимо свойству WindowsState установить значение Maximized.

Создайте еще одно окно, которое будет дочерним ( FormEmployee ). Для этого выберите пункт меню Project/Add Windows Form.

Это окно должно вызываться из пункта главного меню "Сотрудник". Вставьте код, подобный следующему, чтобы создать новую MDI дочернюю форму, когда пользователь щелкает на пункте меню, например "Сотрудник" - имя объекта - employeeToolStripMenuItem (В примере ниже, указатель события обращается к событию Click для employeeToolStripMenuItem_Click ).

private void menuItemEmploye_Click(object sender,
System.EventArgs e)
{ // Создать объект FEmployee класса FormEmployee
FormEmployee FEmployee = new FormEmployee();
// Установить родительское окно для дочернего
FEmployee.MdiParent = this;
// Вывести на экран дочерее окно
FEmployee.Show();
}
Данный обработчик приведет к выводу на экран дочернего окна.

Создание меню в дочерней форме
Добавьте в дочернее окно пункт меню "Действие" ( actionToolStripMenuItem ) с подпунктами "Отменить" ( undoToolStripMenuItem ), "Создать" ( createToolStripMenuItem ), "Редактировать" ( editToolStripMenuItem ), "Сохранить" ( saveToolStripMenuItem ) и "Удалить" ( removeToolStripMenuItem ). Перед пунктом удалить вставьте разделитель ( Separator - name = toolStripSeparator1 ).

Добавьте в дочернее окно еще один пункт меню "Отчет" ( reportToolStripMenuItem ) c подпунктами "По сотруднику" ( reportToolStripMenuItem1 ), "По всем сотрудникам" ( reportToolStripMenuItem2 ). Дочернее окно будет иметь вид, представленный на рисунке 3.1

Дочернее окно с меню


В главном меню родительской формы ( Form1 ) имеются пункты "Объект", "Справочник" и "Справка". В дочерней форме ( FormEmployee ) сформированы пункты меню "Действие" и "Отчет". При загрузке дочерней формы меню родительской и дочерних форм должны были объединены и составлять следующую последовательность: "Объект", "Действие", "Отчет", "Справочник" и "Справка". Объединение пунктов меню производится с помощью задания значений свойств MergeAction и MergeIndex для объектов ToolStripMenuItem.

Проверьте, чтобы в меню главного окна для объекта objectToolStripMenuItem свойство MergeAction было установлено Append, а MergeIndex было равно 0, а для объектов dictionaryToolStripMenuItem и helpToolStripMenuItem - соответственно 1 и 2. С учетом этого, в окне "Сотрудник" для объектов actionToolStripMenuItem (Действие) и "Отчет" ( reportToolStripMenuItem ) свойству MergeAction необходимо задать значение Insert, а свойству MergeIndex задаем порядковый номер который определяет позицию данного пункта меню обновленном главном меню, т.е. 1 (после объекта objectToolStripMenuItem ).

После компиляции программы, запуска ее на выполнение и вызова пункта меню "Сотрудник" экран должен иметь вид, представленный на рисунке 3.2.

Дочернее окно с подключенным меню

Рис. 3.2. Дочернее окно с подключенным меню
Создание обработчиков для меню дочерней формы
Созданные пункты меню для дочернего окна должны инициировать выполнение соответствующих функций (Отменить, Создать, Редактировать, Сохранить и Удалить) приложения в отношении объектов конкретного дочернего окна. Для дочернего окна "Данные по сотруднику" эти функции должны выполнять соответственно отмену редактирования данных по сотруднику (функция "Отменить"), создавать новые данные по сотруднику (функция "Создать"), редактировать данные по сотруднику (функция "Редактировать"), сохранять созданные вновь или отредактированные функция по сотруднику (функция "Сохранить") и удалять данные по сотруднику (функция "Удалить").

Описанную функциональность целесообразно реализовать в программе в виде методов класса созданного FormEmployee. В приложении необходимо создать следующие методы:

Undo - отменить;
New - создать;
Edit - редактировать;
Save - сохранить;
Remove - удалить.
На начальных этапах проектирования, как правило, неясна реализация каждого метода, поэтому целесообразно их выполнять в виде методов-заглушек, которые только сообщают пользователю о своем вызове, а в дальнейшем необходимо написать реальный код.

Для создания метода Undo в коде файла FormEmployee.cs добавьте следующий метод:

private void Undo( )
{ MessageBox.Show("метод Undo"); }
Далее создаем обработчик события вызова пункта меню "Отменить". Для этого в дизайнере формы класса FormEmployee делаем двойной щелчок на пункте меню "Отменить". Инструментальная среда VS сгенерирует следующий код:

private void undoToolStripMenuItem_Click(object sender, EventArgs e)
{
}
В код обработчика undoToolStripMenuItem_Click добавим вызов метода Undo:

private void undoToolStripMenuItem_Click(object sender, EventArgs e)
{
Undo();
}
Откомпилируем приложение и протестируем вызов метода Undo. В результате выбора пункта меню "Отменить" д
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.01.2022, 14:11
Ответы с готовыми решениями:

System.StackOverflowException при обращении к элементу главной формы из дочерней формы
При закрытии дочерней формы (client) необходимо обратиться к элементу listView1 главной формы (server). // Тут в форме server создаю...

Как из дочерней формы получить доступ к элементу управления родительской формы
Есть две формы: родительская(Form1) и дочерняя(Form2). В родительской форме(Form1) находятся textBox1 и button1. В дочерней форме...

Как из Формы контейнера (MdiParent) узнать о закрытии дочерней формы
Всем привет! Вопрос вот в чем. Динамически создается дочерняя форма, и при ее закрытии нужно открыть другую дочернюю форму. Закрытие...

3
27.01.2022, 14:39

Не по теме:

Trenton, что это ?
зачем копировать сюда страницы из учебника ? )

0
Заблокирован
27.01.2022, 14:42
Цитата Сообщение от Trenton Посмотреть сообщение
Создайте еще одно окно,
т.е первое мы уже создали, и нам осталось чуть-чуть?
0
0 / 0 / 0
Регистрация: 13.02.2021
Сообщений: 160
27.01.2022, 14:45  [ТС]
WhiteBelt, Не смогла удалить тему

Добавлено через 1 минуту
RahatLukum, Не чуть-чуть. Не поняла этот пункт, не получается сделать авьте код, подобный следующему, чтобы создать новую MDI дочернюю форму, когда пользователь щелкает на пункте меню, например "Сотрудник" - имя объекта - employeeToolStripMenuItem (В примере ниже,
указатель события обращается к событию Click для employeeToolStripMenuItem_Click ).
C#
1
2
3
4
5
6
7
8
9
private void menuItemEmploye_Click(object sender,
System.EventArgs e)
{ // Создать объект FEmployee класса FormEmployee
FormEmployee FEmployee = new FormEmployee();
// Установить родительское окно для дочернего
FEmployee.MdiParent = this;
// Вывести на экран дочерее окно
FEmployee.Show();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2022, 14:45
Помогаю со студенческими работами здесь

Из дочерней формы убрать событие из объекта главной формы (а потом обратно добавить)
Есть основная форма, которое я называю главной формой. Создаю дочернюю форму - "Настройки", на которой задаю настройки...

Передача параметров из дочерней формы в класс, унасле́дованный от главной формы
Добрый день, форумчане. Сильно не пинайте. Ситуация такая: из главной формы вызываю дочернюю на дочерней форме есть куча ComboBox...

Ссылка из дочерней формы на массив основной формы
Доброго утра :) Подскажите, как легче всего и правильнее ссылаться на массив в коде основной формы, находясь в коде дочерней формы? У...

Обращение к полям родительской формы из дочерней формы
В главной форме я создаю класс как поле и создаю другую форму public partial class FormMain : Form { ...

Обработчик дочерней формы
Подскажите обработчик дочерней формы с richtextbox1. (Т.е есть родительская форма и дочерняя форма) На первой форме эл.управления на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru