Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/58: Рейтинг темы: голосов - 58, средняя оценка - 4.69
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676

Доступ к ликвидированному объекту невозможен

09.09.2020, 15:45. Показов 16024. Ответов 108
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал новую форму Form2 и новый юзер контрол UserControl1

на новую форму повесил юзер контрол (не знаю для чего но сделал )

далее

в классе Program.cs написал вот что

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace TestUserForm
{
    public class RoomForms
    {
        public static Form RForm;
        // Создадим конструктор, 
        public void GETRoomForms()
        {
            RForm = new Form2();
        }
    }
    
    static class Program
    {
        
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
 
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
 
            RoomForms room_forms = new RoomForms();
            room_forms.GETRoomForms();
 
            Application.Run(new Form1());
        }
    }
}
далее на основную форму Form1 положил кнопку и в собитие кнопки написал

C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
        {
            RoomForms.RForm.Show();
        }
завел программу нажмал на кнопку и все ок окно Form2 открылось и кнопка не нем

затем окно Form2 закрыл и нажал на основной форме Form1 кнопку еще раз и получил исключение (

System.ObjectDisposedException: "Доступ к ликвидированному объекту невозможен.
Имя объекта: "Form2"."


как это исправить?

Добавлено через 6 минут
это я пытаю кешировать формы

Добавлено через 1 час 0 минут
не понимаю почему вылазит данное исключение?

я следую этим примерам (понятно что это веб приложение но все же) https://docs.microsoft.com/ru-... startup-cs

я как бы инитиализирую статическое поля а затем юзаю его почему оно теряется при закрытии?

Добавлено через 7 минут
пните в меня ссылку на почитать о кешировании в вин формах пожалуйста

все что нахожу это только о ASP.NET а мне вин формы нужны (

Добавлено через 5 минут
или же мне данные самих настроек необходимо кешировать

а затем использовать их при инитиализации формы?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2020, 15:45
Ответы с готовыми решениями:

Доступ к ликвидированному объекту невозможен
Есть некий код, работает без проблем, но при добавлении в него участка private void Timer_Tick(object sender, EventArgs e) { ...

Доступ к ликвидированному объекту невозможен
Выкидывает ошибку,в чем может быть проблема и как ее решить? Скрины и сама прога прилагаются.

RerortViewer: Доступ к ликвидированному объекту невозможен
Добрый день! Пытаюсь отобразить в репорте результат поиска в БД по дате, первый запрос работает нормально, т.е. я выбираю дату, нажимаю...

108
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
18.09.2020, 14:31
Студворк — интернет-сервис помощи студентам
Sanya2019, мне трудно понять вас.
Скажем даже практически не понимаю.
Вы используете терминологию понятную вам.
А я же знаю, что и как вы мыслите.

Цитата Сообщение от Sanya2019 Посмотреть сообщение
мне нужно сделать конфигуратор
в котором я бы мог выбирать к примеру создать новый справочник (это ка кбы новая таблица в БД + новая форма с кучей контролок
Покажите как всё это по вашему представлению должно выглядеть (GUI)?

И не надо сразу накидывать много инфы - получается каша.

Добавлено через 45 секунд
Цитата Сообщение от Sanya2019 Посмотреть сообщение
Справочник должен иметь в себе три класса методов
один общедоступный
второй класс формы третий дополнительный класс для общих классов класса формы
Что такое классы методов?

Добавлено через 1 минуту
Цитата Сообщение от Sanya2019 Посмотреть сообщение
при компилиции програмыы я должен получить уже готовую форму для работы с данными
При какой компиляции?
Приложения?
Или у вас предусматривается динамическая компиляция?
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
18.09.2020, 16:40  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Что такое классы методов?
да с терминалогией у меня косяк )

я имел в виду

нечнто похожее на это

functio abc() метод
{
var f = New Class(); экземпляр касса для данного метода
}
самому смешно но гд ето так )
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Или у вас предусматривается динамическая компиляция?
да у меня компиляция кода происходит на лету можно сказать диномическая

Добавлено через 10 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Покажите как всё это по вашему представлению должно выглядеть (GUI)?

КОнфигуратор

Имеет в себе скажем три панели

1 панель это дерево элементов

Общие модули -
- Модуль а
- Модуль Б

Справочники -
- Товары
- Склады

Документы -
- ПРиход
- Расход

Вторая панель это место где мы работаем с формами или с кодом

третяя панель это панель свойств элементов

напрмиер мы создаем новый справочник для этого мы правой кнопкой мыши и выбираем из конт. меню создать новый во второй панеле появляется форма настройки новой формы там вы задаем для нового справочника какие элементы у нее будут и т д

например

элементы типа та блица , элемент ссылающийся на справочник единицы измерения

и т д

далее жмем создать форму списка (В справочниках всега две формы форма списка и форма элемента

на форме списка показана таблица где выводятся все элементы справочника на форме же элемента мы создает или редактируем одну запись

при создании формы элеемнта откраваеся во второйпанеле голая форма

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

далее мы перетягиваем из первой панеле во вторую элементы при этом после того как мы отпустили клавишу мыши при перетягивании нам открывается третяя панель со свойствами доступными дл данного выбранного элемента

туда мы пишем например имя элемента

его метод

и т д

далее при сохранении конфигурации мы сохраняем все справочнкии и окументы а так же их формы и эелемнты на данных формах

так же у каждой формы справочника есть свои панели с кодом

а на объекте справочника есть модуль объекта

где то так

когда мы переходим в режим конфигурации в рабочий режим программы

тогда эти формы нужно создат ьи закешировать но без данных!

данные мы получим при их открытии

вроде примерно так должно работать

Добавлено через 28 минут
только свойства элементов должны быть свои не шарповские

например для всех созданых кнопок должен быть один и тот же один метод всегда только один и в него передается только текст модуля формы на которой эта кнопка висит

в принципе это касается всех элементов

Добавлено через 2 минуты
вот пример конфигуратора кстати не плохой на первый взгляд но всеравно не понятно как сохранить созданную в ней форму, как ее сохранить и т д

https://www.codeproject.com/KB... orDemo.zip

Добавлено через 27 минут
если я верно понимаю мне нужно

1. создать все необходимые контролы и описать их все возможные методы и свойства get, set верно?

2. создать интерфейс программы и окна в котором будут рисоваться данные элементы при конфигурации

3. то же что и для конфигурации но с возможностью создавтаь, изменять положения данных элементов а так же заданием их свойст и модулей с кодом

4. создать методы сохранения данных форм и их компиляции на уровне ядра моего интерпритатора

как запустить формы на уровне ядра я знаю но формы созданные на шарпе в моем же ядре ))

а вот как запустить форму собрав ее не знаю (

перетаскивание элементов я могу сделать но как к элементам прикрутить новые их свойства и методы не знаю (

как и куда сохранять формы я так же не знаю (((

если судить по https://www.codeproject.com/KB... orDemo.zip выходит что можно в режиме работающей программы строить формы а значит что мы можем использовать это за исключением только тог отчо мне нужно что бы все элементы были моими юзер контролами так как для элемента типа реквизит который может ссылаться на какой либо справочник нужно в нем иметь публичную переменную с обектом переданным ей при открытии или выводе всех элементов

а так же у такого элемента внутри будет кнопки открыть, очистить а так же выпадающий список для поиска записи


а так же что бы она была наделена моими свойствами

из свойст кнопки например

будет что то типа

Наименование
Текст
Картинка
Настройки текста -
- показывать текст
- показывать текст и картинку
- показывать картинку

Добавлено через 31 минуту
Вот пример тог очто я хочу сделать

конечно не все но примерно так

https://vk.com/apdate?z=video6... l_69427573
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
18.09.2020, 18:25
Цитата Сообщение от Sanya2019 Посмотреть сообщение
если я верно понимаю мне нужно
1. создать все необходимые контролы и описать их все возможные методы и свойства get, set верно?
Если это возможно, то да.
Это значительно упростит дальнейшую реализацию.

Так же для упрощения возможно модернизации приложения, надо сначала создавать интерфейсы.
А уже потом типы их реализующие.
Это позволит вносить отдельные локальные изменения, не затрагивая приложение в целом.

Добавлено через 56 секунд
Цитата Сообщение от Sanya2019 Посмотреть сообщение
2. создать интерфейс программы и окна в котором будут рисоваться данные элементы при конфигурации
Это GUI.
Весь смысл задачи в нём же.
Или не так.

Добавлено через 1 минуту
Цитата Сообщение от Sanya2019 Посмотреть сообщение
3. то же что и для конфигурации но с возможностью создавтаь, изменять положения данных элементов а так же заданием их свойст и модулей с кодом
Да.
Но обязательно учитывая, что изменения должны сохраняться в Данных и по этим Данным можно всё востатновить.

Добавлено через 59 секунд
Цитата Сообщение от Sanya2019 Посмотреть сообщение
4. создать методы сохранения данных форм и их компиляции на уровне ядра моего интерпритатора
Здесь я пока не могу понять, так как до сих пор не понял что же за интерпретатор у вас (по функционалу).

Добавлено через 2 минуты
Цитата Сообщение от Sanya2019 Посмотреть сообщение
из свойст кнопки например
будет что то типа
Наименование
Текст
Картинка
Настройки текста -
- показывать текст
- показывать текст и картинку
- показывать картинку
В WPF это проще.
Там просто есть свойство Контент.
Что в нём есть, то кнопка и отобразит.
Для контента, чтобы его можно было сохранить/востановить буде простой тип с двумя свойствами: Текст и Картинка.
Что из этого есть, то кнопка сама и выведет.

Добавлено через 16 минут
Цитата Сообщение от Sanya2019 Посмотреть сообщение
Вот пример тог очто я хочу сделать
конечно не все но примерно так
Да....
Там каждая задача не очень сложна, но в целом.....
Там столько труда.
Даже просто сделать редактор кодов где вводятся процедуры, функции...

Здесь надо конкретно сидеть и кодить и ооочень долго.

Я могу показать как реализовать, то или иное.
Н надо как-то расчленять на отдельные простые задачи, чтобы вы могли понять объяснения.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
18.09.2020, 21:06  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я могу показать как реализовать, то или иное.
редактор кода пока вообще не важен к нему можно вернуться позже

мне больше всего нужны формы

создание справочников и их элементов на форме их сохранение в бд и поднятие этих форм обратно при режиме конфигурация

это самое Важно и при этом не нужно юзать интерпритатор так как он всеголишь имеет в себе АПИ и я могу его подрубить переделать так как нужно будет

Вы можете дать мне пример как как сделать простой конфигуратор

пусть в нем будет следующее

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

и назначение метода при этом что бы у типового метода был метод Функция (пусть выводящая сообщение)

далее проект должен собираться и откраваться в режиме программы и ворма должна работать

при созданнии справочника в 1С происходит следующее

создается новая таблица Одноименная со справочником ПО умолчанию в нее попадают три поля ИД, КОд, Наименование
И дополнительно те что мы создаем на форме

на форме должен быть поле для ввода кода (Пусть просто текст не нужно его пока подсвечивать)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
18.09.2020, 21:26
Цитата Сообщение от Sanya2019 Посмотреть сообщение
мне больше всего нужны формы
Так что вы решили Формы или WPF ?
1
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
19.09.2020, 09:10  [ТС]
WPF (Пора переходить к чему то новому )))
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
19.09.2020, 09:19
Цитата Сообщение от Sanya2019 Посмотреть сообщение
WPF (Пора переходить к чему то новому )))
Тогда давайте перейдём в раздел WPF.

И начнём с маленьких задач.

Вот у вас в видео на 4:30 есть кусочек с созданием маленькой формы для ввода трёх значений.
Начнём с неё.

Создайте тему в разделе WPF.
Опишите подробно дизайн и требуемый функционал этого окошка.

Добавлено через 1 минуту
Дайте картинки с этим окошком в начальном состоянии и возможных после редактирования.
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
19.09.2020, 09:52  [ТС]
Ок буду писать
0
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
19.09.2020, 21:33  [ТС]
Продолжаем здесь Конфигуратор Баз данных (Конструктор форм)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.09.2020, 21:33

System.ObjectDisposedException: "Доступ к ликвидированному объекту невозможен"
У меня две формы (первая форма это основная, а вторая форма как вспомогательная), которые одновременно загружается. Если же пользователь...

Из-за чего в первой строке пишет ошибку "Доступ к ликвидированному объекту невозможен"?
int d = DateTime.Now.Day; int my = DateTime.Now.Month; if (richTextBox1.TextLength &gt; 0 &amp;...

"Доступ к ликвидированному объекту невозможен" - почему?
Здравствуйте! У меня есть 2 формы. Первая форма запускает вторую форму вот таким вот образом: Form2 f2 = new Form2(); ...

Повторное открытие формы выдает ошибку доступа к ликвидированному объекту
Добрый вечер всем! Раньше я работал в C++ Builder и использовал метод Close() для своих форм. Затем их можно было всегда опять показать...

Доступ к ликвидированному объекту невозможен
Всем доброго времени суток. Вообщем скажу сразу речь будет о ддосе но я делаю это исключительно в целях тестирования своих игровых...


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

Или воспользуйтесь поиском по форуму:
109
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru