2010-06-17 54 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项目,并将其放入不带任何条件的消息框中。如果可行,请开始逐个添加旧代码并观察其中断位置。

相关问题