powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка при закрытии формы.
24 сообщений из 24, страница 1 из 1
Ошибка при закрытии формы.
    #32546870
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем !

Подскажите, как избавиться от сообщения об ошибке при закрытии формы, содержащей ListBox.

Сообщение такое: exeption of type 'System.ObjectDisposedExeption' occurred in System.Windows.form.dll

Additional infomation: Cannot access a disposed object named 'ListBox'.

Как я понимаю не освобождаются какие-то ресурсы ListBox при закрытии формы. Что делать люди ?

Спасибо
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548042
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, что-то плохи мои дела.

Ну, попробую уточнить вопрос, может кто подскажет.

В форме на выбор элемента листбокса висит Me.Close. В этом случае при Debug-Start и выбор элемента ListBox вылезает это проклятое сообщение. Если Me.Close навесить на отдельную кнопку, то по клику на неё форма нормально закрывается без каких-либо сообщений. Но мне надо закрывать эту форму именно сразу после выбора элемента ListBox без каких-либо промежуточных действий.

Помогите пожалуйста !!!!!!
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548129
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проектик можешь маленький сделать и прикрепить в виде файла к своему сообщению?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548142
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А код этого события полностью нельзя посмотреть (выбора ListBox)???
А то, как то трудно искать чёрную кошку в чёрной комнате (особенно, если...)
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548262
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привожу код формы, кроме кода, сгененрированного мастером:

Private Sub startForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim connect As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection
Dim cm As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand
connect.ConnectionString = cn.strSQL
cm.CommandType = CommandType.StoredProcedure
cm.CommandText = "UP_AutenUser" 'ХП, определяющая роли (в данном случае - компании), в которых участвует текущий юзер
cm.Connection = connect


Dim IntCoun As String
Dim myReader As SqlClient.SqlDataReader
connect.Open()
myReader = cm.ExecuteReader()
Me.ListBox1.BeginUpdate()
While myReader.Read()
IntCoun = myReader.GetString(0)
Me.ListBox1.Items.Add(IntCoun)
End While
Me.ListBox1.EndUpdate()
myReader.Close()
connect.Close()


Catch exc As Exception
MsgBox(exc.Message)
End Try
End Sub

Dim frm As Form = New BasicCover
Private Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
cn.strGroupUser = Me.ListBox1.SelectedItem
Me.Close()
frm.Show()
End Sub

Заранее прошу не бить, если что на так - я ещё чайник, пытающийся перейти на net с Access.

2Sa

Проект не могу приделать, поскольку данные в ListBox затягиваются ХП SQL.

Спасибо
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548283
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А общий смысл какой? Поподробнее опишите что как должно работать.
Код: plaintext
1.
2.
Me.Close()
frm.Show()
Закрыть текущую форму, открыть другую?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548303
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa

Да, именно так. Т.е. если брать всё, то присвоить переменной выбранное значение ListBox, закрыть текущую форму и открыть другую.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548323
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Да, именно так. Т.е. если брать всё, то присвоить переменной выбранное значение ListBox, закрыть текущую форму и открыть другую.

Хочу вникнуть дальше.

А если пользователь взял и ошибся в выборе значения, все поезд получается уехал?

Текущая форма модальная или нет?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548355
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форма немодальная ... пока ... хотя по её назначению её такой надо бы сделать.

Ошибся в выборе... мммм ... то , что ему не положено, в листбоксе он вообще не увидит, т.е куда не следует не попадёт и некорректного значения тоже не будет. А по поводу того, что просто промазал мышью, тогда может действительно запросить подтверждение и закрыть форму отдельной кнопкой. Ну ладно, допустим так и сделаю, но вопрос-то всё равно остаётся и мне, как чайнику, интересно знать, как из подобных ситуаций выбираться .
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548424
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Ну ладно, допустим так и сделаю, но вопрос-то всё равно остаётся и мне, как чайнику, интересно знать, как из подобных ситуаций выбираться .

ИМХО избегать подобные ситуации

При первом приближении у вас должно быть что то подобное:

1) Форма модальная
2) При выборе ListBox и дальнейшего подтверждения, форму закрываем, ВНИМАНИЕ: Код по открытию новой формы находиться в хозяине модальной форме, то есть той формы которая вызывает эту.

То есть примерно так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim f as myModalForm  = new myModalForm()' Создаем вашу форму с ListBox.
f.ShowDialog(Me) ' показали модальную форму 
' Сюда попадем мы когда пользователь выберет значение и и подтвердит что не ошибся. Будьте уверены пользователи с плохой мышкой будут вам благодарны.
if f.Закрыли_и_выбрали_значение = True then '  Здесь можно использовать вообще DialogResult то есть если нажали кнопку которая "помечана" как DialogResult.OK, то так попадаем внутрь if, иначе нет
  ' Запускаем другую форму, передаем это значение и т.д.
  MsgBox(f.Выбранное_значение_такое_то)
End If

Переменную Выбранное_значение_такое_то и Закрыли_и_выбрали_значение нужно объявить как минимум с модификатором Friend.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548534
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое, примерно так и буду делать. А всё-таки, извините за дотошность, что это за проклятое сообщение и почему оно вылезает ?

Спасибо
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548559
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Спасибо большое, примерно так и буду делать. А всё-таки, извините за дотошность, что это за проклятое сообщение и почему оно вылезает ?

Не сталкивался с этим, есть некоторые предположения, обещаю будет время посмотрю ваш код поподробнее.

Что то прочитал свой пост предыдущий - немного сумбурно написал, так что если будут вопросы - пишите.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32548944
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От сообщения избавился, но теперь при закрытии модальной формы F1 закрывается и вызванная ей форма F2, если не установить F2.ShowDialog(), так и должно быть ? Но F2 мне модальной не нужна. Как быть ?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549286
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>От сообщения избавился, но теперь при закрытии модальной формы F1 закрывается и вызванная ей форма F2, если не установить F2.ShowDialog(), так и должно быть ? Но F2 мне модальной не нужна. Как быть ?

Давайте сначала разберемся кто у нас F1, кто F2.

Итак если я правильно понял:

У нас есть формы mainForm (главная форма), F1, F2.

Из mainForm вызываем модальную F1. На F1 у нас находится ListBox.
Выбираем значение из ListBox в F1. Пользователь соглашается и вызываем F2. Которая не должна быть модальной.

Такая постановка или нет?
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549360
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пацаны, постараюсь внести ясность (как я понял эту проблему)
В форме, которая запускается первой, проверяешь значение которое требуется узнать - если оно равно - неизвестно чему

типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim f as New form2
Public Shared m as String

Form_Load....
   If m ="неизвестно чему" Then
       f.ShowDialog=f.DialogResult.OK Then ... {круто попали в значение "m"}
   End If


А, во второй форме пишешь так:

Код: plaintext
1.
2.
3.
4.
твоя процедура...
    присваиваю значение Form1.m = значение процедуры
    Me.DialogResult.OK
End Sub

Запускаешь и радуешься
Если, изначально, значение m не равно чему надо. запустится первой форма 2, в ней присвоим значение m, и она пропадёт, затем появится форма1
Вот и ВСЁ...

Кстати, дико удобно искать access базу данных
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549373
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sa

Да, всё почти так, только модальная форма F1 вызывается Sub Main, остальное всё так.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549398
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sposad>>> А не можешь мне разъяснить, как решить задачу???
Есть одна главная форма
Назовём её "набор имён"
На ней три кнопки
Вася
Петя
Анна
Как при помощи этих кнопок вызвать форму с названным именем, погасив главную форму, поработать с ней и опять поднять главную, что бы вызвать следующую форму с именем????
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549408
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2vladgrid

Родной ! Если прикалываешься, то брось - не смешно, да и некорректно вопросом отвечать на вопрос.
Если серьёзно, то вынеси это в отдельный топик, народ поможет.
А я ... сам плаваю.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549449
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто, то над чем Вы "sposad" боролись с самого начала, "Sa" ответил (очень правильно, но действительно немного сумбурно), а я, просто постарался внести ясность в эту сумбурность, но сама идея от этого, на мой взгляд не пострадала.
Не надо делать Sub main для F1, форма и так появится после того как в другой форме произведём определённые действия.
Также в форме F2 при помощи вот этого Me.DialogResult.OK
Можно любому событию присвоить значение ответа (не нужно делать отдельных кнопок для подтверждения, а можно использовать Ваше событие Click по листбоксу или ещё что нибудь)
P.S. А задачку попробуйте решить, у меня так до сих пор и неполучилось
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549575
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понял задачу:

При загрузке приложения появляется F1 с ListBox для выбора определенного значения.
После того как пользователь выбрал значение из ListBox нажал кнопку OK.
Появляется F2 в которую передается выбранное пользователем значение.

И форма F1 закрывается навсегда

Мы продолжаем работать с F2 и т.д.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549623
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2vladgrid
Эта задача на VBA в Access решается по-моему достаточно просто, по крайней мере такое часто приходилось делать. На VB с его классами и наследованием мне пока тяжело.

2Sa

Всё именно так, но у меня чего-то пока не получается, ковыряюсь дальше... тяжко перестроиться под vb.net, блин, сдохну, но сделаю ...
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549625
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrig
Есть одна главная форма
Назовём её "набор имён"
На ней три кнопки
Вася
Петя
Анна
Как при помощи этих кнопок вызвать форму с названным именем, погасив главную форму, поработать с ней и опять поднять главную, что бы вызвать следующую форму с именем????


Смотрите прикрепленный проект, возможно это то что вам надо. По крайне мере так я понял вашу задачу.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549628
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sposad
Sa
Я правильно понял задачу:

При загрузке приложения появляется F1 с ListBox для выбора определенного значения.
После того как пользователь выбрал значение из ListBox нажал кнопку OK.
Появляется F2 в которую передается выбранное пользователем значение.

И форма F1 закрывается навсегда

Мы продолжаем работать с F2 и т.д.

Если я все таки правильно понял задачу, смотрите прикрепленный проект.
...
Рейтинг: 0 / 0
Ошибка при закрытии формы.
    #32549635
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa, принципиально это именно то, что надо. Я ВАМ очень благодарен.

Увидел в коде кое-что новое для себя, буду разбираться.

ОГРОМНОЕ СПАСИБО !!!!!!!!
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка при закрытии формы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]