2010-06-17 53 views
0

我在C#windows窗體應用程序中有以下代碼。消息框在發佈模式下不起作用

if (myGrid.Rows.Count != 0) 
{ 
    // do something 
} 
else 
{ 
    MessageBox.Show("Test"); 
} 

消息框在調試模式下顯示,但不在發佈模式下顯示。任何想法爲什麼?

我有類似的問題與其他代碼以及

例如

if (!myParameter) 
    this.mycheckBox.Enabled = false; 
else 
    this.mycheckBox.Enabled = true; 

上面的代碼工作在調試模式下不釋放。不知道爲什麼。

感謝

+0

提出了一個斷點,看它是否達到條件。英國石油公司在發佈模式下工作,僅供參考。 – psychotik 2010-06-17 19:36:55

+0

它沒有達到條件。我沒有得到這個。 – 2010-06-17 19:40:47

+1

你知道'this.myCheckBox.Enabled = myParameter'是一種更好的編碼風格嗎? – ChrisF 2010-06-17 19:42:24

回答

4

在釋放模式myGrid.Rows.Count != 0必須是真實的,可以嘗試在另一MessageBox.Show那裏。

4

可能是因爲您的if語句在發佈模式下爲true。

如果卸下並保留MessageBox.Show("Test");而應該只是罰款

編輯
你甚至可以更進一步通過把一個斷點在if語句,看到正在返回什麼價值。這將適用於這兩部分代碼。

+0

不一定 - 我的網格可能有時是空的,我的其他代碼也有類似的問題(編輯後)。你知道爲什麼嗎?謝謝。 – 2010-06-17 19:41:52

+0

雖然它的確是我的網格可以是空的,當你在代碼中點擊這個點時,if語句返回true,並觸及空白塊。在我的編輯中,放置一個斷點(如果你有一個調試器),然後看看myGrid.Rows.Count返回什麼值。 **編輯**另外,是myParameter布爾?當它碰到if(!myParameter)時它是否設置爲true? – Wesley 2010-06-17 19:45:10

0

嘗試在所有if語句之前放置messageboxes或breakpoints。你將要測試的參數的價值是什麼?

如果這沒有任何指示,請創建一個新的空winForms項目,並將其放入不帶任何條件的消息框中。如果可行,請開始逐個添加舊代碼並觀察其中斷位置。

相關問題