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

Вызывать одновременно одну и ту же форму с разными данными

15.12.2012, 21:58. Показов 2334. Ответов 7
Метки нет (Все метки)

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

Можно конечно сделать просто через ShowDialog() но это не совсем интересно, потому что может понадобиться параллельно редактировать данные.

Добавлено через 46 минут
думал так:

C#
1
2
3
4
5
6
7
public void sectionsGrid_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
        secProp[] prop = new secProp[sectionsGrid.RowCount];
        prop[sectionsGrid.CurrentRow.Index].Owner = this;
        prop[sectionsGrid.CurrentRow.Index].Text = "Информация по участку №" + sectionsGrid.CurrentRow.Cells[0].Value.ToString();
        prop[sectionsGrid.CurrentRow.Index].Show();
}
но вылетает ошибка о том что "Ссылка на объект не указывает на экземпляр объекта." с указанием на:
C#
1
prop[sectionsGrid.CurrentRow.Index].Owner = this;
впринципе дальнейший код вызывает тоже самое исключение
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2012, 21:58
Ответы с готовыми решениями:

CListCtrl, при двойном нажатии на одну из строк открыть другую форму с данными из нажатой строки
Здравствуйте. На форме есть ClistCtrl в форме Отчета. Требуется при двойном нажатии на одну из строк открыть другую форму с данными из...

Как правильно вызывать форму ui?
Добрый день. Как правильно вызывать форму ui? Есть две формы MainWindow и widget form_ui2. #include "mainwindow.h" ...

BSOD с разными данными
Уважаемые гуру и просто участники этого ресурса, прошу вас помочь в решении, сложной для меня, проблемы. Все началось с того, что я...

7
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
16.12.2012, 12:28
Зачем вам после каждого двойного нажатия мышкой по заголовку строки создавать новый список форм? Да и вообще, есть версия, что сборщик мусора, после отработки указанных строк, убивает ваш список, ибо область видимости объявленного вами указателя заканчивается. В общем, попробуйте сделать ваш список свойством вашей основной формы, а создавать объект в конструкторе.
0
73 / 73 / 10
Регистрация: 18.09.2012
Сообщений: 208
16.12.2012, 12:34
C#
1
2
3
4
5
6
7
8
public void sectionsGrid_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
     Form f = new Form(); // тут свою форму Вам нужно использовать
     f.Owner = this;
     f.Text = "....";
     // и т.д.
     f.Show();
}
0
22 / 22 / 1
Регистрация: 25.02.2012
Сообщений: 132
16.12.2012, 15:10  [ТС]
Цитата Сообщение от kodv Посмотреть сообщение
Зачем вам после каждого двойного нажатия мышкой по заголовку строки создавать новый список форм?
Решил что это поможет в случае если были добавлены или удалены строки. По логике вещей если этого не делать, то получится так что будет старое количество строк и вызов будет тогда производиться не корректно.
0
22 / 22 / 1
Регистрация: 25.02.2012
Сообщений: 132
16.12.2012, 17:35  [ТС]
действительно, самый простой способ оказался самым действенным))) теперь другой вопрос созрел: Как ограничить вызовы формы с одинаковыми данным, тоесть к примеру чтою при нажатии несколько раз на одну и ту же строку в гриде чтоб было открыто только одно окно с данными данными, но можно было открывать новую форму по другим данным

Наглядный пример: у меня в аттаче вид работы, но я могу вызвать к пимеру данные по улице розы люксембург несколько раз, а в идеале чтоб была возможность нескольких форм, но с уникальными данными.
Миниатюры
Вызывать одновременно одну и ту же форму с разными данными  
0
22 / 22 / 1
Регистрация: 25.02.2012
Сообщений: 132
16.12.2012, 17:44  [ТС]
собственно как отслеживать свойства уже вызванных форм?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
16.12.2012, 19:35
Цитата Сообщение от Хаддар Посмотреть сообщение
Решил что это поможет в случае если были добавлены или удалены строки. По логике вещей если этого не делать, то получится так что будет старое количество строк и вызов будет тогда производиться не корректно.
В вашем случае у вас при открытие каждой новой формы создается новый список, естественно, с единственным заполненным значением. Изменять размер списка лучше, когда у вас меняется количество строк. Но, я думаю, можно попробовать открытые формы привязывать к Tag для каждой строки DataGridView. Собственно, в данном случае, можно проверять Tag на значение null, чтобы определить, запущена ли уже форма для данной строки.
0
22 / 22 / 1
Регистрация: 25.02.2012
Сообщений: 132
16.12.2012, 20:12  [ТС]
Цитата Сообщение от kodv Посмотреть сообщение
Собственно, в данном случае, можно проверять Tag на значение null, чтобы определить, запущена ли уже форма для данной строки.
я буквально минут 40 назад плотно поев, подумал сделать через массив булиевых элементов по кол-ву строк, перед запуском проверять по индексу элемента равному индексу запускаемой строки, если фалс то запускать, и вписывать тру. сделать массив публичным, и при закрытии возвращать фалс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2012, 20:12
Помогаю со студенческими работами здесь

Две клавиатуры одновременно подключены с разными раскладками ?
Всем добрый день, вот есть такой способ http://www.ubuntugeek.com/how-to-setup-multiple-simultaneous-keyboards-with-u... (Ubuntu 14.04...

background: две картинки одновременно с разными условиями
Уважаемые, подскажите, пожалуйста, как правильно в css задать разные условия для двух разных картинок, которые одновременно являются фоном...

Сумма столбца с разными данными
Здравствуйте! Есть код ActiveCell.FormulaR1C1 = "=SUM(RC:RC)", по идее надо считать автосумму столбца каждый раз с новыми значениями в...

Одинаковые страницы с разными данными
Честно не знал как правильно написать заголовок, но суть такая. Есть документ, типа договоров, нужно напечаться штук 100 их, содержание...

Как открыть одну форму через другую форму в winforms?
Как мне сделать так, что при выборе какой-либо опции из списка одна форма закрывалась, а другая - открывалась? Такой код полностью...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru