Интересно, что может заставить форму не закрываться?
У меня большая форма, с несколькими TabControls, DataGridViews и многими DataBound-Controls, по крайней мере, 10 BindingSources задействованы.(Вот почему я не могу опубликовать свой код здесь, извините).
Теперь у меня проблема в том, что где-то в разработке (просто рефакторинг) форма перестала корректно закрываться.Когда я нажимаю кнопку «Закрыть» (Red-Cross-Box), я прохожу через FormClosing и FormClosed, но больше ничего не происходит.VisualStudio2008 с отладкой и остановкой всех ошибок, когда выброшенное событие не указывает, что что-то пошло не так, форма просто остается на месте.
Что может вызвать такое поведение?Это не то, что e.Cancel в FormClosing-Event установлен!
После поэтапного объединения моих изменений в другую чистую рабочую копию форма корректно закрывается, но выдается исключение:
ArgumentNullException с сообщением: «Значение не может быть нулевым. Имя_параметра: компонент».Он добавляется в Form.Designer.Dispose при вызове base.Dispose (распоряжения) линии.
Кажется, что-то с DataBinging, приветствуются любые подсказки.
Я положу в StackTrace, это действительно любой элемент управления DataBound, из того, что я понимаю из StackTrace,это TextBox - я не включаю пошаговое изменение исходного кода Framework, поэтому я не могу понять, что здесь ломает TextBox.
bei System.ComponentModel.ReflectPropertyDescriptor.RemoveValueChanged(Object component, EventHandler handler)
bei System.Windows.Forms.BindToObject.CheckBinding()
bei System.Windows.Forms.Binding.CheckBinding()
bei System.Windows.Forms.Binding.SetBindableComponent(IBindableComponent value)
bei System.Windows.Forms.ControlBindingsCollection.ClearCore()
bei System.Windows.Forms.BindingsCollection.Clear()
bei System.Windows.Forms.ControlBindingsCollection.Clear()
bei System.Windows.Forms.Control.ResetBindings()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.Windows.Forms.TextBox.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.Windows.Forms.ContainerControl.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.Windows.Forms.TabControl.Dispose(Boolean disposing)
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.Windows.Forms.ContainerControl.Dispose(Boolean disposing)
bei System.Windows.Forms.Form.Dispose(Boolean disposing)
bei My.BaseForm.Dispose(Boolean disposing) in BaseForm.Designer.cs:Zeile 30.
bei My.InheritedForm.Dispose(Boolean disposing) in InheritedForm.Designer.cs:Zeile 25.
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Form.WmClose(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Хорошо, понял, с работающим пошаговым перемещением исходного кода Framework (почему это так?сложный) Я мог понять, что связывание данных не удалось.Это была привязка данных к свойству объекта, который был нулевым во время выполнения.Спасибо за помощь.
PS: Я извиняюсь за злость на меня, но я задал этот вопрос явно за то, что не получил эти ответы в течение всего дня.Приятно напомнить мне об этих возможных неудачах, но если я утверждаю, что это не так, не будьте по-детски притворяться на это.