|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||||||||||
Доступ к ликвидированному объекту невозможен09.09.2020, 15:45. Показов 15737. Ответов 108
Метки нет (Все метки)
Создал новую форму Form2 и новый юзер контрол UserControl1
на новую форму повесил юзер контрол (не знаю для чего но сделал ) далее в классе Program.cs написал вот что
затем окно Form2 закрыл и нажал на основной форме Form1 кнопку еще раз и получил исключение ( System.ObjectDisposedException: "Доступ к ликвидированному объекту невозможен. Имя объекта: "Form2"." как это исправить? Добавлено через 6 минут это я пытаю кешировать формы Добавлено через 1 час 0 минут не понимаю почему вылазит данное исключение? я следую этим примерам (понятно что это веб приложение но все же) https://docs.microsoft.com/ru-... startup-cs я как бы инитиализирую статическое поля а затем юзаю его почему оно теряется при закрытии? Добавлено через 7 минут пните в меня ссылку на почитать о кешировании в вин формах пожалуйста все что нахожу это только о ASP.NET а мне вин формы нужны ( Добавлено через 5 минут или же мне данные самих настроек необходимо кешировать а затем использовать их при инитиализации формы?
0
|
|||||||||||
| 09.09.2020, 15:45 | |
|
Ответы с готовыми решениями:
108
Доступ к ликвидированному объекту невозможен Доступ к ликвидированному объекту невозможен
|
|
Модератор
|
|||
| 12.09.2020, 12:08 | |||
|
Общие свойства всех контролов находятся в ControlData. А в ButtonData и TextBoxData свойства которые уникальны для этих типов. Добавлено через 4 минуты Контейнеры формируются по заданному Id и словарю "название свойства"-"значение свойства". Эти данные надо получать из внешнего источника (БД или файл). По идее при создании (добавлении) UI контрола на Форму должен происходить запрос через Презентер в Модель для присвоения Id. Это нужно чтобы не разрывалась связь между UI элементами и списком контейнеров с данными для них. Добавлено через 1 минуту Это нужно для облегчения расширяемости используемых типов.
0
|
|||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||||||
| 12.09.2020, 12:13 [ТС] | |||||||
0
|
|||||||
|
Модератор
|
|||
| 12.09.2020, 12:22 | |||
|
То есть тех которые можно сохранить преобразованием в стринг и восстановить методом Parse(). Сохранение ссылочных сложных типов невозможно. Для сохранения ссылочных свойств надо сохранять значения объекта на которое оно ссылается, присвоить ему Id. И потом при восстановлении по этому Id соединить объекты. В общем виде задача "Конструктор Форм" очень сложная. И её вам самостоятельно не решить. Нужно сильно её упростить (ограничить) чтобы вы сами могли её решить. Добавлено через 3 минуты У вас за основу, опору в размышлении и логике взят GUI - Форма. И вы акцентируетесь на том как с ней работать. А в любом приложении с данными (у вас же подразумевается сохранение результатов редактирования) самая важная часть - это Модель. А в Модели - сохранение/восстановление данных. Какой толк от добавления контрола на форму или связи контролов, если вы потом не сможете это сохранить?
0
|
|||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||||||||||||||||||||||||||
| 12.09.2020, 13:41 [ТС] | |||||||||||||||||||||||||||
|
в общих чертах я разобрался но есть масса вопросов
например не понял как данные соединить с sqlite используя EntityFramework Добавлено через 18 минут толк в следующем у меня есть свой скриптовой язык с русским синтаксисом (Я больше 1С(Ник) шарп еще пока изучаю ради интереса нашел статью как создать интерпритатор сриптового языка и написал рускоязычный как в 1С теперь мне нужно формы на каждой форме я располагаю элементы так как мне удобно далее на каждый элемент вешаю событие типа ПриветМир() далее для этого события пишу функцию например
будет пример так
где то так так же ситуация и с работай с БД основная логика работы с данными завязана у меня в скриптовом движке например
далее
в случае же вывода данных например в дата грид у меня будет использован свой юзер контрол так как там данные могут быть разного типа не только текст а картинки кнопки текстбоксы с кнопками в общем все это сделано и работает но мне не удобно работать писать в визуал студии формы а затем исполнять свои коды на 1С синтаксисе вот и хочу сделать свой конструктор форм теперь
0
|
|||||||||||||||||||||||||||
|
Модератор
|
|||
| 12.09.2020, 14:29 | |||
|
Раз у вас надо сохранять результаты редактирования, то вы не должны мыслить в таком направлении на каждой форме я располагаю элементы так как мне удобно.Вы должны мыслить:
То есть, в приложении с данными, GUI вторичен, если не третичен. Добавлено через 2 минуты Это будут только кнопки? Тогда моё решение, в принципе, не подойдёт - оно излишне избыточно и рассчитано на множество различных типов UI элементов.
0
|
|||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
||
| 12.09.2020, 14:29 [ТС] | ||
|
конструктор форм ) единственное что я начал делать для работы с SQLITE но потом придется переписывать
0
|
||
|
Модератор
|
||
| 12.09.2020, 14:33 | ||
|
Он умеет сохранять данные полученные в вашем редакторе? Если да, то зачем вам SQLITE ? А если нет, то роль этого движка для работы с данными - нулевая. Он нужен для Представления данных - это уже совсем другой уровень.
0
|
||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||
| 12.09.2020, 14:40 [ТС] | |||
|
пока формы у меня есть но они в самом движке
и вызываются Справочник.Номенклатура.Открыть(); но форма то на шарпе сделана ) и никто кроме меня ее не сможет изменить ( Добавлено через 4 минуты в движке реализован механизм работы с базой данных SQLITE в нем имеются свои контролы таблицы диалоги выбора файла, диалоги выбора принтера и т д щас дополнительно я сделал формы справочников но они статические а мне необходимо что бы они были динамическими ) все что умеет мой редактор это добавить на форму кнопки и юзер контролы и сохранить их настройки и методы в XML фал Туда пишутся данные ссылки на таблицу БД напрмиер справочник.Товары и далее описываются все его контролы
0
|
|||
|
Модератор
|
|
| 12.09.2020, 14:44 | |
|
Sanya2019, чтобы дать ПОЛЕЗНЫЙ вам совет надо сначала разобраться как работает используемый вами движок.
Всё что пока понятно из ваших постов - это то что или вы неправильно его используете, или он, вообще, не способен выполнять нужную вам задачу. Найдите кого-то кто лучше разбирается в этом движке.
1
|
|
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||
| 12.09.2020, 16:25 [ТС] | |||
|
нуу вот что она умеет пока (это то что может мой двиг )
https://vk.com/apdate?w=wall69427573_898%2Fall Добавлено через 4 минуты но здесь формы написаны на C# язык используется рускоязычный База данных Sqlite Добавлено через 8 минут далее нашел как сделать свой компилятор и дополнил его им и теперь коды компилируются на лету и теперь вот хочу сделать контруктор форм для моего интерпритатора языка ) Добавлено через 6 минут написать написал а ссылку не приложил )
0
|
|||
|
Модератор
|
||
| 12.09.2020, 16:33 | ||
Сообщение было отмечено Sanya2019 как решение
РешениеНо предлагаемое мною решение не подойдёт вам. Оно совсем под иную структуру. Надо вам как-то расчленить решаемую задачу на более мелкие. Которые можно решить без знания вашего движка. Из моего решения (если разберётесь) можете взять только понимания разделения Данных и их Представления. Касаемо вашего первоначального вопроса "Статический UI контрол" (без разницы кнопка или что-то иное) - так делать нельзя. Все UI rконтролы - это "дети" конкретной Формы. И закрытие Формы закрывает и всех детей. Можно сделать статическую ссылку на UI элемент. Но при каждом пересоздании Формы надо эту ссылку обновлять ссылкой на новый UI элемент. То есть не должно быть такого: создали UI элемент, сохранили статическую ссылку на него, содали форму и передали в неё UI элемент по статической ссылке. Должно быть так: создали форму, создали в ней UI элемент, передали ссылку на него в статическое свойство. Вы же хотите в элементе хранящемся по статической ссылке хранить какие-то значения (поожение, размер, обработчик, название и т.п.) - этого делать просто нельзя. Все эти значения и называются Данными. А UI элементы не могут хранить Данные. Поэтому для всех этих данных надо создать контейнер (как я показывал). Может хранить этот контейнер в статическом свойстве - это плохо, но что поделаешь если у вас уже есть готовый пакет так работающий. И при создании Формы в ней будет код который в ней создаёт кнопку и значения для её свойств получает из этого статического контейнера. Можно (как я показал) и автоматизировать в самом контейнере возврат нового UI элемента представляющего этот контейнер.
1
|
||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||
| 12.09.2020, 16:47 [ТС] | |||
|
во всех датагрид я использую виртуализацию от того они очень быстро рисуются )) правда когда делал выпарил о вируализации на этом форуме всем мозг )))) за что прошу прощения ) но работает мое приложение по сравнению с 1С намного быстрее! для сравнения писал точно такую же базу на 1С товары заливал с того же сайта всего товаров 2 000 000 при всем при этом базу использую Sqlite ))) в 1С даже экселька эта читается около 2-х минут вот я и решил попробовать сделать некий продукт для малых предприятий но свой а не на 1С самое сложно е было реализовать блокировки таблиц базы данных что бы Sqlite могли юзать сразу несколько пользователей (короче сделать многопользовательской) но пока на этом все застопарилось так как было много другой работы а вот щас решил продолжить :-) Добавлено через 3 минуты сам конструтор это будет отдельная программа и ее задачей будет простое создание форм и запись их параметров в БД далее я хочу попробовать всандалить в свой двиг Ваше решение и потестировать как будут работать формы будут тормозить / буду искать другие решения / ну а не будут тормозить буду юзать ))) но опять же я не собираюсь использовать целиком Ваше решение я всеголишь буду делать в своем некое подобие ) в любом случае спасибо Вам большое!
0
|
|||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
||
| 12.09.2020, 16:51 [ТС] | ||
|
пока научился работать только на вин формах ) но мой двиг может работать с любыми формами и под любой осью ) Добавлено через 19 секунд а так же с базами SQLITE и MYSQL
0
|
||
|
Модератор
|
|||
| 12.09.2020, 16:55 | |||
|
Теоретически это позволит потом разделить GUI и базу по разным компам. Можно будет добавлять GUI для разных платформ и ОС. Добавлено через 4 минуты Допустим там в GUI просто передаются контейнеры с данными ControlData, ButtonData и др.) и WPF сама по ним строит нужные UI элементы. Кода получится в три раза меньше. Так же реализация MVVM позволит разделить собственно Бизнес-Логику работающую локально и Репозиторий Данных, который буде работать (возможно через службу) с любым хранилишем.
0
|
|||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
||
| 12.09.2020, 17:05 [ТС] | ||
|
я самоука в программировании
с 1С начинал так же на мисте голову дурил года два людям а теперь уже лет так 12 прошло и 1С7 и 8 знаю как облупленную )) потом начал изучать ПХП и сделал CMS интернет магазинов но все еще никак не выпущу ее как готовый продукт ))) так как постоянно что то новое придумыаваю что то доделываю переделываю ))) с таким успехом я ее никогда не выпущу но щас нашел единомышлиников котрым понравилась моя CMS и вот скоро начнем на ней писать сайт ))) работает она очень быстро так как оптимизацие запросов я занимался добрую часть разработки ))) потом используя построенную если так можно назвать ОРМ на пхп сделал ее аналог на шарпе ) но мне все это очень тяжело дается ( Добавлено через 2 минуты в общем база данных предстовляет из себя отдельное приложение все запросы и задачи с базой выполняет это приложение а прога всеголишь обращается в этому приложению передовая в него что то типа Справочники.Номенклатура; в итоге ОРМ выполняет запрос и возвращает результат где то так если же мы пишем что то в таблицу и если она открыта у другого юзера тогда ОРМ возвращает данные юзера и кричит что запись заблокрована! Добавлено через 5 минут и еще одно но почему я не стал дальше пробовать писать на ВФ дело в том что я не нашел как сделать формы с MDI на WPF а большенство бухгалтеров привыкли работать в 1С 7.7 следовательно именно поэтому я делаю интерфейс максимально похожим на 1С :-) 7
0
|
||
|
Модератор
|
||||
| 12.09.2020, 17:18 | ||||
|
Но WPF не помеха для нужного вида. Добавлено через 1 минуту Возможно нужно доработать какие-то детали, но направление правильное. Добавлено через 38 секунд Двух летнее хобби.
0
|
||||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|
| 12.09.2020, 17:18 [ТС] | |
|
https://vk.com/apdate?z=video6... l_69427573
вот еще тест со средством диагностики сколько заюзано памяти и процессора
0
|
|
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||
| 12.09.2020, 17:22 [ТС] | |||
|
ясно ну видимо Вам легче дается (я же тупой как сибирский валенок ) многих терминов попросту не знаю и не понимаю поэтому проще учится на примерах на готовых проектах изучать как они устроены что то дописывать что то тестить а уже потом писать свое ( Добавлено через 42 секунды 1С писали 13 человек а я один ( Добавлено через 1 минуту вряд тли мне удастся написать приложение уровня 1С (когда либо) если только когда наконец смогу себе позволить нанять программистов для этого )
0
|
|||
| 12.09.2020, 17:22 | |
|
System.ObjectDisposedException: "Доступ к ликвидированному объекту невозможен" Из-за чего в первой строке пишет ошибку "Доступ к ликвидированному объекту невозможен"? "Доступ к ликвидированному объекту невозможен" - почему? Повторное открытие формы выдает ошибку доступа к ликвидированному объекту Доступ к ликвидированному объекту невозможен Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|