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

Дочерние формы одинаковые как упростить задачу

28.10.2017, 19:55. Показов 2652. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, я работаю в режиме многодоменного когда одно окно главное в другие дочерие, точнее ismdicontainer = true
У меня есть пункт меню поиск в нем подпункты меню поиск по номеру, поиск по ФИО и т.д.
И все формы отображают таблицу в datagridview c результатами поиска.
Вот подскажите как можно упростить разработку, есть одна форма с нужным меню и datagridview, и что бы при каждом клике меню создавалась такая форма только datagridview показывал нужный результат
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2017, 19:55
Ответы с готовыми решениями:

Дочерние формы, как сделать, чтобы они были разной прозрачности?
как в Paint.net

Посоветуйте способ, если есть, как можно упростить задачу с анимацией загорания лампочки
Здравствуйте, имею вот что: нужно создать модель лампочки (C# ООП). Вопрос вот в чем, можно ли как то упростить такую задачку? Грубо...

Чтоб Дочерние формы открывались по иерархии от главной формы
Есть главная форма Form1, Form1 - topmost=true, т.е Form 1 отображается поверх всех окон. Нужно чтоб form2 открывалась не поверх всех окон...

20
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
28.10.2017, 20:07
Добрый вечер!
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
И все формы отображают таблицу в datagridview c результатами поиска.
Не очень понял для чего нужно несколько форм? Не проще по пункту меню менять фильтр и отображать нужные записи в одной форме?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
28.10.2017, 20:44  [ТС]
Можно и так сделать, а как правельно сделать и как передавать нужный фильтр ?

Добавлено через 46 секунд
Тогда можно и отказаться от ismdicontainer
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
28.10.2017, 21:17
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
Можно и так сделать, а как правельно сделать и как передавать нужный фильтр ?
Один из вариантов - использование фильтра:
C#
1
2
3
4
// dt - таблица DataTable в которой хранятся данные, отображаемые в гриде
DataView dv = dt.DefaultView;
dv.RowFilter = "тут пишем условие фильтрации";
dataGridView1.DataSource = dv;
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
28.10.2017, 21:28  [ТС]
Тогда можно и отказаться от ismdicontainer
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
28.10.2017, 21:41
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
Тогда можно и отказаться от ismdicontainer
Можно! И даже нужно!
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
29.10.2017, 08:30  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Можно! И даже нужно!
У меня в БД есть дата рождения, мне надо при клике на дату отсортировать пользователей до 7 лет, подскажите что мне передать в параметр dv.RowFilter
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.10.2017, 12:05
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
У меня в БД есть дата рождения, мне надо при клике на дату отсортировать пользователей до 7 лет, подскажите что мне передать в параметр dv.RowFilter
Что то вроде этого должно быть:
C#
1
2
3
// bDate - наименование столбца в таблице, в котором хранятся даты дней рождения
DateTime date = DateTime.Now.AddYears(-7);
dv.RowFilter = String.Format("bDate < #{0}#", date.ToString("MM/dd/yyyy"));
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
29.10.2017, 13:23  [ТС]
Спасибо попробую, но у меня еще еще такая выборка, от 7 до 16 лет
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.10.2017, 13:32
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
но у меня еще еще такая выборка, от 7 до 16 лет
Ну тут то уж, по аналогии, можно догадаться как фильтр написать!
Добавьте в фильтр AND и еще одно условие.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
29.10.2017, 13:32  [ТС]
Не работает код
C#
1
2
3
4
5
6
7
try
            {
                DataView dv = dt.DefaultView;
                DateTime date = DateTime.Now.AddYears(-7);
                dv.RowFilter = String.Format("date < {0}", date);
                dataGridView_Main.DataSource = dv;
            }
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.10.2017, 14:16
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
Не работает код
А разве я такой код писал?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
29.10.2017, 14:56  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
А разве я такой код писал?
у меня дата рождения просто пишиться 2010
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.10.2017, 16:04
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
у меня дата рождения просто пишиться 2010
Так об этом нужно было сразу говорить. Тогда нужно не DateTime date = DateTime.Now.AddYears(-7);, а
int date = DateTime.Now.AddYears(-7).Year;. Ну или int date = DateTime.Now.Year - 7;
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
29.10.2017, 16:15  [ТС]
У меня почему то ркгаеться фильтр на такое =>
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.10.2017, 16:47
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
У меня почему то ркгаеться фильтр на такое =>
У меня сегодня из-за магнитных бурь экстрасенсорные способности не работают... Может быть Вы напишите текст ошибки и приведете код?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
29.10.2017, 20:11  [ТС]
Код
C#
1
2
3
4
5
int date = DateTime.Now.AddYears(-7).Year;
DataView dv = dt.DefaultView;
  
                dv.RowFilter = String.Format("date <= {0}", date);
                dataGridView_Main.DataSource = dv;
когда я пишу dv.RowFilter = String.Format("date <= {0}", date);
просто аварийно закрываеться программа, точнее отрабатывает исключение ( а без = все нормально работает
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.10.2017, 22:17
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
когда я пишу dv.RowFilter = String.Format("date <= {0}", date);
просто аварийно закрываеться программа, точнее отрабатывает исключение ( а без = все нормально работает
Так исключение то какое возникает? Текст исключения покажите! Ну что ж из Вас все клещами то приходится вытягивать? И код создания столбца date покажите заодно! Какой тип он имеет? Если Int32, должно нормально работать.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
30.10.2017, 10:31  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Так исключение то какое возникает? Текст исключения покажите! Ну что ж из Вас все клещами то приходится вытягивать? И код создания столбца date покажите заодно! Какой тип он имеет? Если Int32, должно нормально работать.
Вот структура БД
XML
1
`id`    INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, `year`    INTEGER NOT NULL, `name`    TEXT NOT NULL, `date`   INTEGER NOT NULL, `vpo` TEXT NOT NULL, `invalde`    TEXT NOT NULL
Вод код выборки где пытаюсь выбрать данные от 7 до 15 лет
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
try
            {
                DataView dv = dt.DefaultView;
                int date7 = year - 7;
                int date16 = year - 15;
                dv.RowFilter = String.Format("date => '{0}' AND date > '{1}'", date7, date16);
                dataGridView_Main.DataSource = dv;
            }
 
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message, "Программа", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
Вот ошибка
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
30.10.2017, 10:36
Лучший ответ Сообщение было отмечено Matroskin_Kot как решение

Решение

Matroskin_Kot,
не =>, а >=
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2017, 10:36
Помогаю со студенческими работами здесь

Узнать, есть ли у данной формы дочерние формы
Как узнать, есть ли у данной формы дочерние формы. Пока нашел только свойство &quot;Есть ли Mdi дочерние формы&quot;, но это же совсем не...

Дочерние формы
Добрый день. Имеются три формы: MainForm, Form1 и Form2. С MainForm вызывается Form1, которая не является дочерней для MainForm, а вот с...

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

Родительские-дочерние формы
Есть Родительская Form1, через меню открываю диалоговое Form2 private void barButtonItem3_ItemClick(object sender,...

Две дочерние формы в родительской
В общем надо как-то поменять расположение 2-ой дочерней формы в родительской. Обе родительские формы грузятся сразу после запуска: public...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru