cool999
|
||||||
Получение данных с программно созданных элементов27.11.2011, 19:23. Показов 4553. Ответов 26
Метки нет Все метки)
(
Использую следующий код для программного создания DataGridView.
Вопрос: Как теперь получить доступ к созданному элементу
|
27.11.2011, 19:23 | |
Ответы с готовыми решениями:
26
Получение данных с программно созданных элементов Получение данных от созданных кодом элементов
|
T34
|
|
27.11.2011, 20:51 | |
Не понятно в чем вопрос? А что _grid в программе не доступен? Или хотите из внешнего класса? тогда стоит объявить его public наверное...
|
cool999
|
||||||
28.11.2011, 05:41 | ||||||
"Ссылка на объект не указывает на экземпляр объекта." А если при загрузке формы то от не доступен Вообще я хочу создавать несколько DataGridView и получать с них данные |
T34
|
||||||||||||||||
28.11.2011, 09:37 | ||||||||||||||||
Обратите внимания на следующее.
второй момент если нажать кнопку без строчки
|
cool999
|
||||||
28.11.2011, 18:52 | ||||||
С получением данных все получилось только теперь возникла другая проблема если я этим кодом создаю более одного DataGridView то программа работает только с последним экземпляром возможно ли обратится к предыдущим? или это как-то по другому реализовать надо?
вот код. На форме есть tabControl на нем программно создается Panel в ней уже DataGridView
|
T34
|
|
28.11.2011, 19:45 | |
по моему вы усложняете
DataGridView d1; DataGridView d2; ... и так далее.. DataGridView []GridsArray; GridsArray = new DataGridView[10]; GridsArray[0] = new DataGridView(); ... GridsArray[9] = new DataGridView(); ну и не забывайте им всем делать свои объекты колонки и свои имена давать... ну и в разные места формы класть если вы их показываете |
cool999
|
|
28.11.2011, 20:02 | |
Я хочу попробовать загружать меню из базы данных привязывать к меню таблицы из этой базы и чтоб все это работало динамически без перекомпиляции приложения.
|
T34
|
||||||
29.11.2011, 02:05 | ||||||
и что вас останавливает?
Вам надо использовать ArrayList
Следовательно вам останется только создавать ДатаГриды, и добавлять их в список, и они все будут доступны, и тд и тп. только у меня есть вопрос зачем так сложно? Это же интерфейсный элемент, он нужен если вы хотите его показывать, а если для хранения данных то лучше сделать маленький классик который будет все хранить... |
cool999
|
|
29.11.2011, 05:09 | |
попросили сделать базу в которой возможно придется менять поля (удалять или добавлять новые)
Чтоб каждый раз не компилировать приложение хочу сделать так. и вообще потом на будущее пригодится. |
T34
|
|
29.11.2011, 09:30 | |
Это я понял, это стандартное поведение баз данных. Но причем тут DataGridView не понятно.
|
T34
|
|
29.11.2011, 19:52 | |
Ну например пишут свои таблицы. Или берут DataGrid вместо DataGridView последний сделан для отображения таблицы и управления ей пользователем.
Программу стоит разделит на 2 части, Интерфейс - которая общается с пользователем. И обработку которая делает выборку данных и общение с базами данных. Интерфейс надо продумывать. Если пользователь должен уметь запрашивать таблицы, и ни размер ни количество их не известно. Я бы сделал много оконный интерфейс. Взял бы форму, положил на нее ДатаГридВью настроил все силами визуальной среды. И сделал бы эту форму базовым элементом. Каждый раз когда пользователь хочет получить какую либо таблицу, я бы создавал эту форму целиком, и передавал бы в нее данные. Это удобнее надежнее и понятнее чем создавать где то в недрах датагридвью и потом либо его не показывать, либо пытаться найти на форме место куда его влепить. Элементы отображения должны отображать а не хранить. Для хранения есть другие элементы! |
T34
|
|
30.11.2011, 01:44 | |
Обманул вас DataGrid - просто устаревшая версия DataGridView, для внутреннего хранения и обработки без отображения ArayList надо использовать.
|
T34
|
|
30.11.2011, 09:34 | |
Вы путаете теплое с мягким%)...
когда в визуальной среде вы настраиваете дата грид, она просто всю работу по прописыванию элементов и так далее делает сама, но это же не означает что кода не появляется... А вот когда у вас есть уже настроенный элемент на форме, его можно вместе с формой скопировать, просто нажав Form N1=new Form(); Form N2=new Form(); и если в эту форму добавить еще метод получения данных из таблицы в дата грид, или соединения датагрида с таблицей БД, не важно то останеться только вызвать этот метод Form N1=new Form(); Form N2=new Form(); N1.GetData(,...); N1.GetData(,...); N1.Show(); N2.Show(); а как вы хотели показывать таблицы? ну сделаете их, ну запихаете в них БД а дальше? На 1 форме размещать? а если их 10 будет? |
cool999
|
|
23.12.2011, 18:06 | |
А если их будет 10 я буду переключатся по вкладкам которые тоже будут создаваться. Как к примеру в 1с когда открываете несколько таблиц и появляются вкладки
|
cool999
|
|
23.12.2011, 18:59 | |
Наверное с копированием формы будет проще. Надо только подумать как создавать закладки чтоб переключатся между формами
![]() |
cool999
|
||||||
23.12.2011, 19:23 | ||||||
![]() |
T34
|
|
24.12.2011, 00:53 | |
ваще не мудрено, я тоже бы ругался%) откуда в форме взялся такой метод?
А даже если бы он был, то скорее всего он бы возвращал данные формы и не принимал бы в качестве аргумента другую форму... вообщем это не логично)... а далее если вы обратитесь к конструкторам формы, то не увидите в них конструктора копировщика (принимающего тот же класс на входе) а без этого невозможно сделать копирование... вообщем форму надо делать заново руками, или писать свой класс унаследованный от формы, с добавленным методом копирования. Хотя вряд ли что выйдет, половина данных приватны или защищены, вы их никогда не получите из другой формы.. |
T34
|
|||||||||||
24.12.2011, 01:14 | |||||||||||
прочитал сообщения до. Хм...! Немного не правильная концепция, зачем копировать форму?
Надо сделать форму, сделать метод отображения таблицы, и давать форме таблицу для отображения. Если надо показать таблицу, надо создать новый экземпляр формы, а не копировать существующую... ща попробую схематично обозначит демо проект!. сделайте проект виндоус апликатион. Добавьте в него новую форму Project-Add windows form пусть это будет например абоут бокс! AboutBox1 На новой форме положите текст бокс, и создайте метод
Это то что вам надо сделать. Форма - отображает таблицу, в ней есть метод заполнения таблицы, и вы просто делаете новые экземпляры класса формы, и даете ей таблицы для отображения (редактирования если хотите). Каждый созданный экземпляр можно добавлять в общий массив форм, если хотите иметь к ним доступ из главной формы всегда, но это не обязательно... С# хорошо сам чистить память. |
24.12.2011, 01:14 | ||||||
Помогаю со студенческими работами здесь
20
Получение данных из динамически созданных edit ов
Изменение программно созданных TextBox по событию программно созданного CheckBox Можно ли обеспечить взаимодействие программно созданных объектов и объектов, созданных мастером Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть.
Дело в том, что я. . .
|
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
|
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
|
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
|
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
|
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
|
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
|
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
|
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
|
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
|