說我想打開一個新的形式..C#的好方法來關閉窗體
TestForm test = new TestForm();
什麼是關閉它的好辦法嗎?更確切地說,只是調用close()好嗎? 我應該使用using(){}如此dispose()被調用嗎?最後,假設有一個對話框,該對話框應該只打開一個對話框的實例,是否有 以及「已知」模式?我有不同的選擇,如將其存儲在一個靜態字段, 和空值「ing」的它,當它被關閉..
感謝
說我想打開一個新的形式..C#的好方法來關閉窗體
TestForm test = new TestForm();
什麼是關閉它的好辦法嗎?更確切地說,只是調用close()好嗎? 我應該使用using(){}如此dispose()被調用嗎?最後,假設有一個對話框,該對話框應該只打開一個對話框的實例,是否有 以及「已知」模式?我有不同的選擇,如將其存儲在一個靜態字段, 和空值「ing」的它,當它被關閉..
感謝
就單一實例對話框而言(如果它是模態的,您不必擔心),您可以使構造函數爲私有,並提供一個公共靜態方法來訪問該窗體。
public class MyForm : Form
{
protected MyForm()
{
}
protected int MyValue { get; set; }
public static int GetResult()
{
using(MyForm myForm = new MyForm())
{
if(myForm.ShowDialog == DialogResult.OK)
return myForm.MyValue;
}
return -1;
}
}
這將迫使呼叫通過的形式..
int someValue = MyForm.GetResult();
它是使用using
每當對象實現IDisposable
好習慣。這將只有一個模態對話框工作:
using (TestForm test = new TestForm())
{
....
}
這句法相當於一個try{}finally{}
塊,所以即使有異常的大括號內拋出,Dispose()
將您的對象上調用。
這個模式非常棒,除了窗口將無用,因爲它在任何事情都可以完成之前會消失,因爲它的消息循環永遠不會旋轉。 – 2009-02-22 01:35:01
如果在上下文中爲你的作品,我會建議總是試圖與形式使用使用模式。 – 2009-02-22 01:16:24