C# 如何检查窗口是否已处理

C# 如何检查窗口是否已处理,c#,winforms,C#,Winforms,我使用此代码打开窗口,以确保只创建一个窗口: ticketTypesForm = ticketTypesForm ?? new fTicketTypes(); ticketTypesForm.Show(); ticketTypesForm.Activate(); 但一旦我关闭窗口,我就会收到异常: Cannot access a disposed object. Object name: 'fTicketTypes'. 检查检查而不是使用可使用隐藏的关闭方法。 Hid

我使用此代码打开窗口,以确保只创建一个窗口:

    ticketTypesForm = ticketTypesForm ?? new fTicketTypes();
    ticketTypesForm.Show();
    ticketTypesForm.Activate();
但一旦我关闭窗口,我就会收到异常:

Cannot access a disposed object.
Object name: 'fTicketTypes'.

检查

检查

而不是使用可使用隐藏的关闭方法。 Hide方法不会处理对话框的实例。因此,您无需再检查它是否已被处置。只需显示之前隐藏的对话框


隐藏的唯一缺点是将对话框的资源驻留在缓存内存中。但有时它更方便。

可以使用Hide代替Close方法。 Hide方法不会处理对话框的实例。因此,您无需再检查它是否已被处置。只需显示之前隐藏的对话框


隐藏的唯一缺点是将对话框的资源驻留在缓存内存中。但有时更方便。

如果您的代码试图访问已处置对象,则可能表示逻辑错误。如果您的代码试图访问已处置对象,则可能表示逻辑错误。