|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||||||||||
Доступ к ликвидированному объекту невозможен09.09.2020, 15:45. Показов 15557. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
System.ObjectDisposedException: "Доступ к ликвидированному объекту невозможен" Из-за чего в первой строке пишет ошибку "Доступ к ликвидированному объекту невозможен"? "Доступ к ликвидированному объекту невозможен" - почему? Повторное открытие формы выдает ошибку доступа к ликвидированному объекту Доступ к ликвидированному объекту невозможен Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|