我正在編寫一個C#.NET應用程序。我有一個表格。當表單創建時,我創建一個類的實例。當我關閉表單時,我想要處理這個類,以便下次打開表單時,我可以創建一個新的類的新實例。所以,在form_Closing事件中,我添加了這樣的代碼:classInstance = null;
問題是,出於某種原因,下次打開表單時,類不等於null,而是它與我在關閉之前處於相同狀態表格。這是爲什麼發生?我怎樣才能讓課程「重設」?
編輯:添加信息:
將myHandler是在Form類的字段。 它看起來像這樣:
private HSFW_Handler myHandler;
我指的類是單身,所以我創造這樣的:
public static HSFW_Handler GetInstance()
{
if (myHSFW == null)
{
myHSFW = new HSFW_Handler();
return myHSFW;
}
else return myHSFW;
}
我在Form_Shown事件創建它的初始實例
private void SetupDialogForm_Shown(object sender, EventArgs e)
{
try
{
myHandler = HSFW_Handler.GetInstance();
UpdateDisplay();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
表單閉幕看起來像這樣...
private void SetupDialogForm_FormClosing(object sender, FormClosingEventArgs e)
{
myHandler = null;
}
你能這樣減少對演示該問題的一個片段。表單創建/顯示代碼和關閉代碼。 – ChrisF 2010-07-21 20:47:24
「當創建表單時,我創建了一個類的實例。」 - 當您下次打開表單時,您確定不會創建該類的另一個實例嗎? – dtb 2010-07-21 20:48:21
可能還有其他事情正在進行。你還對班上做了什麼? – MCain 2010-07-21 20:48:46