C# MessageBoxButton.Yes按否时无错误
当我按下窗体中的“断开连接”按钮时,它会问我是“是”还是“否”。我按下“否”,但我只能在程序中执行一个操作,因为在那个之后,它崩溃了。为什么?C# MessageBoxButton.Yes按否时无错误,c#,C#,当我按下窗体中的“断开连接”按钮时,它会问我是“是”还是“否”。我按下“否”,但我只能在程序中执行一个操作,因为在那个之后,它崩溃了。为什么? private void button3_Click(object sender, EventArgs e) { DialogResult dialres = MessageBox.Show("Sunteti sigur ca vreti sa va deconectati?", "Atentie!", MessageBoxButto
private void button3_Click(object sender, EventArgs e)
{
DialogResult dialres = MessageBox.Show("Sunteti sigur ca vreti sa va deconectati?",
"Atentie!", MessageBoxButtons.YesNo);
if (dialres == DialogResult.OK)
{
try
{
_conn.Close();
_conn = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
button1.Enabled = true;
stopbut();
}
else if (dialres == DialogResult.No)
{
return;
}
}
您的第一个
if
将永远不会为真,因为您测试的是OK,而不是YES。在第二个中,如果有一个return语句,那么方法将完成。所以不确定您还期望什么?当您按“否”时,没有任何变化,因此应该有另一个崩溃原因,可能是您的某个操作导致了崩溃。当您执行任何操作时,您的程序会崩溃还是某个特定操作会崩溃
编辑:放置导致崩溃的操作代码
对不起大家,我应该评论而不是回答:(但我不能评论,因为评论需要50个声誉,而我只有39个
您的代码可能更高效,如下所示:
private void button3_Click(object sender, EventArgs e)
{
DialogResult dialres =;
if ( MessageBox.Show("Sunteti sigur ca vreti sa va deconectati?",
"Atentie!", MessageBoxButtons.YesNo) == DialogResult.No) return;
//when it ain't 'No' it is definitely 'Yes'
try
{
_conn.Close();
_conn = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
button1.Enabled = true;
stopbut();
}
else if (dialres == DialogResult.No)
{
return;
}
}
“it崩溃”是什么意思?错误是什么?您不需要向我们显示正在崩溃的代码吗?(dialres==DialogResult.OK)
应该是DialogResult。是的
。我不确定是否正确阅读了您对下面答案的评论。您按下“否”按钮,程序崩溃。但您没有显示“否”分支的全部代码?您是否正在进行测试,以检查我们是否能够猜出原因?不,我认为代码中缺少某些内容,但不知道确切地说,这就是我打电话给你的原因。这没有回答问题。OP没有提供导致程序“崩溃”的代码所以你不可能知道。这确实解决了他面临的一个问题——尽管他可能还没有意识到。这应该是一个评论。你甚至在回答中提到你不确定OP期望的是什么。如果你有问题,请在评论部分问,而不是作为答案。不,程序工作得很好。我没有收到任何错误作为答案消息,只是没有按钮的全部代码,我猜..对不起,我想添加额外的