按NO时,MessageBoxButton.YesNo错误

时间:2014-11-10 20:27:43

标签: c#

当我按下表格中的断开按钮时,询问我是否是否。我按否,但是我只能在程序中执行一个动作,因为之后它会崩溃。为什么呢?

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; 
    }
}

2 个答案:

答案 0 :(得分:-1)

你的第一个if将永远不会成真,因为你正在测试OK,而不是YES。在你的第二个if你有一个return语句,所以你的方法将完成。所以不确定你还有什么预期呢?

答案 1 :(得分:-2)

当您按“否”时没有什么变化,所以应该有另一个崩溃的原因,也许你做的一个动作导致崩溃。当你对程序崩溃或特定程序执行任何操作时?

编辑:输入导致崩溃的操作代码

对不起大家,我应该评论不回答:(但我不能发表评论,因为评论需要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; 
    }
}