Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MessageBoxButton.Yes按否时无错误_C# - Fatal编程技术网

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期望的是什么。如果你有问题,请在评论部分问,而不是作为答案。不,程序工作得很好。我没有收到任何错误作为答案消息,只是没有按钮的全部代码,我猜..对不起,我想添加额外的