Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Эксперт .NET
 Аватар для Casper-SC
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
1

Показ закрытого ранее окна. Вылетает исключение.

27.03.2011, 15:06. Показов 2551. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему возникает исключение, при попытке повторно показать окно? Окно и null не становится и не показывается. Вообще оно же после закрытия должно становится null?

Окно 1
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
    public partial class MainWindow : Window
    {
        WndPayListContainer wndPlaylistContainer;
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void togBtnPlaylist_Checked(object sender, RoutedEventArgs e)
        {
            if (wndPlaylistContainer == null)
            {
                wndPlaylistContainer = new WndPayListContainer();
                wndPlaylistContainer.Owner = this;
            }
            wndPlaylistContainer.Show();
        }
 
        private void togBtnPlaylist_Unchecked(object sender, RoutedEventArgs e)
        {
            if (wndPlaylistContainer != null)
                wndPlaylistContainer.Hide();
        }
    }


Окно 2
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
    public partial class WndPayListContainer : Window
    {
        public WndPayListContainer()
        {
            InitializeComponent();
        }
 
        private void btnAddRadSt_Click(object sender, RoutedEventArgs e)
        {
            WindowAddSoundTrack wndAddSoundTr = new WindowAddSoundTrack();
            wndAddSoundTr.Owner = this;
 
            if (wndAddSoundTr.ShowDialog() == true)
            {
                this.plsRadio.ListViewRadio.Items.Add(wndAddSoundTr.GetSoundTrack());
            }
        }
 
        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            this.tabControl.Items.Add(new TabItem() { Header = "Плейлист " + this.tabControl.Items.Count.ToString() });
        }
 
        private void Window_Closed(object sender, EventArgs e)
        {
            if (this.Owner is MainWindow)
            {
                MainWindow mWnd = this.Owner as MainWindow;
                mWnd.togBtnPlaylist.IsChecked = false;
            }
        }
    }


Текст исключения

Нельзя задать Visibility или вызвать Show, ShowDialog или WindowInteropHelper.EnsureHandle после закрытия окна.


Добавлено через 4 минуты
Как вообще узнать, что окно ранее было закрыто?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2011, 15:06
Ответы с готовыми решениями:

(GalaSoft.MvvmLight) В одном окне используются 2 ViewModel. Вылетает исключение при создании окна
Здравствуйте. В общем, есть главное окно, DataContext которого: DataContext="{Binding Source={StaticResource Locator}, ...

Необработанное исключение: System.ObjectDisposedException: Чтение из закрытого TextReader невозможно
Ошибка после запуска с консоли, когда передаю значение аргумента, помогите пожалуйста, нет вообще идей как это зафиксить using System;...

Возобновление работы закрытого окна
Суть проблемы такова: есть окно, содержащее в себе какую-то информацию, необходимо реализовать возможность его закрытия с возможностью...

1
Кодило
 Аватар для r0fL
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
28.03.2011, 07:13 2
C#
1
2
3
4
5
6
7
8
9
        private void togBtnPlaylist_Checked(object sender, RoutedEventArgs e)
        {
            if (wndPlaylistContainer == null)
            {
                wndPlaylistContainer = new WndPayListContainer();
                wndPlaylistContainer.Owner = this;
            }
            wndPlaylistContainer.Show();
        }
тут ты инициализируешь его только в случае, если оно ранее не было открыто, а надо - всегда, потому что при закрытии оно не будет == null, но и открыть уничтоженный объект уже нельзя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2011, 07:13
Помогаю со студенческими работами здесь

MVVM показ окна
привет всем, тему создал, так сказать, для обмена опытом. В общем-то сам мой вопрос в названии темы. Далее я покажу пару примеров...

Вылетает исключение
Всем привет! private void zedGraphControl1_MouseClick(object sender, MouseEventArgs e) { MasterPane masterPane...

Вылетает исключение
Есть класс Матрица. При работе вылетает исключение: Exception in thread "main" java.lang.NullPointerException at...

Показ окна без рамки
Как отобразить Window чтобы не показовалась рамки окна, кнопки закрытия, минимизации и максимизации. Короче чтобы показывала только...

Убрать показ консольного окна
Всем добра).окно cmd 1 раз мигнет когда запускаю весь этот процесс(после уходит в хайд все нормально работает), возможно ли как то...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
std::span в C++: Константность и безопасность типов
Wired 03.03.2025
std::span - представитель семейства view-типов, появившийся в стандарте C++20. Этот компонент предоставляет легковесное и эффективное решение для работы с непрерывными последовательностями данных,. . .
std::span в C++: Subview и Slice
Wired 03.03.2025
std::span - невладеющий тип данных C++, который предоставляет гибкий интерфейс для работы с непрерывными последовательностями элементов. Этот тип существенно упрощает обработку массивов и. . .
std::span в C++: Доступ к элементам и итерирование
Wired 03.03.2025
Появление std::span в стандарте C++20 стало значительным шагом вперед, предоставив разработчикам средство для безопасного и производительного доступа к непрерывным последовательностям элементов. . . .
std::span в C++: Управление массивами данных без владения
Wired 03.03.2025
Новый класс std::span, появившийся в стандарте C++20, открывает возможности для оптимизации работы с последовательными наборами данных. По сути, это легковесная обертка, которая предоставляет доступ. . .
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
Подробно о std::mdspan в C++23
stackOverflow 02.03.2025
Работа с многомерными массивами данных традиционно была одной из сложных задач в C++. Программистам приходилось создавать собственные абстракции или использовать сторонние библиотеки для эффективной. . .
Колмогоровская сложность в C++: Путь к совершенному коду
stackOverflow 02.03.2025
Абстрактная математическая теория Колмогорова стала мощным средством оценки и улучшения программного кода. Сложность алгоритма - не только в его вычислительной эффективности, но и в том, насколько. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru