Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: закрытие формы с панелью: "Cannot access...."  (Прочитано 3081 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ssk
Гость
« : 15-07-2004 15:32 » 

хорошего всем коннекта!
я - начинающий програмист на шарпе, столкнулся с таким непонятным "эффектом":
есть виндоуз-форма на ней тулбар с двумя кнопками, меню с пунктом "Выход" и панель с Dock=Fill. в солюшен включены два UserControl. типа под нажатие каждой калавиши.

вызываю контролы так:
   private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e){
if (ViewControl!=null){
//            this.ViewControl.Dispose();
   this.panel1.Controls.Clear();
}
   switch(((ToolBar)sender).Buttons.IndexOf(e.Button)){
      case 0:
         this.ViewControl = new docs();
         break;
      case 1:
         this.ViewControl = new pay();
         break;
   }
   this.panel1.Controls.Add(this.ViewControl);
}

на контролах соединение к БД ацеза, команда, ридер, датагрид...
ничего криминального пока не видно...

в пункте меню "Выход" пишу:
this.Close();

проблема в том, что если интенсивно подергать появление то одного контрола то другого, если полистать гриды, то при выполнении пункта меню "Выход" программа задумывается минуты на две и выдает сообщение:
Additional information: Cannot access a disposed object named "Panel".

как его обойти - ума не приложу...

благодарю всех, кто откликнется!
Записан
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #1 : 26-07-2004 08:13 » 

ssk, проследи, где ты освобождаешь объект Panel. Ошибка из-за того, что ты ему где-то сделал Dispose(), а потом пытаешься что-то сделать с уже несуществующим объектом. Если тебе это все еще нужно можешь кинуть проект на sky-freedom@yandex.ru  Отлично
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines