2012-04-30 47 views
1

從我的主要形式,我打開一對夫婦的其他形式的鼠標點擊,就像這樣:如何在顯示後不久安全關閉表格?

主要形式:

... 
private void btn_Click(object sender, EventArgs e){ 
    frmNewForm newForm = frmNewForm(); 
    newForm.Show(); 
} 

在新的形式,我想檢查是否有任何數據對顯示,如果不立即關閉表格。 新形式:

... 
public frmNewForm(){ 
    InitializeComponent(); 

    // check if opening this form makes sense 
    if(noData){ 
     Close(); 
    } 
} 

不過,我會在frmNewForm.Show()拋出的異常:對象不能被訪問。

如果翻譯與Visual Studio的翻譯不完全相同,我表示歉意:我正在使用另一種語言版本。

無論如何,我能做些什麼來安全關閉frmNewForm

回答

2

如果noData是你frmNewForm類的公共布爾屬性,你可以這樣做:

if(!newForm.noData) 
{ 
    newForm.Show(); 
} 

有意義嗎?

+0

這比衙門答案更有效率,因爲如果沒有數據,內存分配'(InitializeComponent();)'不會發生。 –

+0

我不認爲這是完全正確的。 'InitializeComponent();'在構造函數中被調用,所以在我們進行「無數據」檢查之前就已經發生了。儘管如此,我們應該節省分配給實際繪製窗口的資源。 –

+0

是的,我錯過了newForm對象已經創建。我們打電話,如果條件事後。抱歉,是我的錯。 –