У меня есть приложение формы Windows, в котором есть две основные панели: слева - узкая полоса с рядом переключателей.Панель справа содержит Tabcontrol, к которому добавлено несколько вкладок, которые пользователь может выбирать среди верхних.К каждой из этих вкладок добавлено около 7 DataGridView.Каждый DataGridView содержит около 5-6 столбцов текста с переменным количеством строк (10-500).Добавленные к нему данные были сделаны непосредственно в сам DGV, то есть с помощью метода DGV.Rows.Add (), передавая массив объектов, а не через источник данных.
Когда пользователь выбирает другую вкладку, отображаемая сетка данных зависит от радиокнопки, выбранной слева.Я выполняю это, обрабатывая событие SelectedIndexChange tabcontrol и каждого события CheckedChange радиокнопки.
Внутри события SelectedIndexChange tabcontrol я программно проверил текущийвыбранная кнопка радио.Затем в событии радиокнопки CheckedChange я перебираю все DataGridView в selectedTab TabControl и скрываю все те, которые не соответствуют тому, который соответствует выбранной радиокнопке.
Моя проблемакаждый раз, когда пользователь начинает переключаться между множеством вкладок или пытается просмотреть DGV, имеющий много строк, программа выдает следующую ошибку:
System.ComponentModel.Win32Exxception: Ошибка создания дескриптора окна.
Кто-нибудь знает, что может вызвать вышеуказанную ошибку?Первоначально я подозревал, что когда я переключаюсь на другую вкладку, DGV на исходной вкладке, на которой я находился, все еще находится в памяти, но когда я пытаюсь вызвать .Dispose (), DGV просто исчезает.Может быть, я здесь упускаю что-то фундаментальное.