Итак, в моих приложениях я стараюсь создавать новые экземпляры форм «на лету», а затем использовать Form.Show() для их отображения (не модально).Каков правильный способ утилизации новой формы без немедленного закрытия?
private void test_click(object sender, EventArgs e)
{
var form = new myForm();
form.Show();
}
Однако Code Cracker сообщает мне, что эти формы должны быть утилизированы. Итак, я завернул их в инструкцию «using», но затем они закрываются сразу после открытия.
using (var form = new myForm())
{
form.Show();
}
Я не хочу использовать Form.ShowDialog(), потому что в некоторых случаях я открываю новые окна, которые только показывают отчеты; Мне не нужно, чтобы они были модными.
Ответ ясен. «Code Cracker» вводит вас в заблуждение. Не используйте 'using' .... Утилизируйте форму, когда это подходит ... –
Я должен согласиться с @ L.B здесь - закрытие окна - это правильная вещь для Dispose(). По определению, правильно реализованный метод Dispose() должен оставить расположенный объект в непригодном для использования состоянии. – EJoshuaS
Чтение этой [темы] (https://social.msdn.microsoft.com/Forums/windows/en-US/cc4acf77-6e7e-46a6-992d-702e314acbdf/howwhen-to-call-dispose-when-using-a -modeless-dialog? forum = winforms), кажется, указывает, что мне не нужно беспокоиться об утилизации. Необязательные формы автоматически GC'd. Я тестировал во время просмотра Task Mananger, и память была исправлена. – javon27