这是我的代码:
if (addNewRecord == false)
        { MessageBox.Show("No action selected. \nSave cancelled."); }
else if (editCurrentRecord == false)
        { MessageBox.Show("No action selected. \nSave cancelled."); }
else{.....}
addNewRecord并且editCurrentRecord我检查过的两个布尔值都有true值。当我像上面那样做时,消息框仍会显示为 bools false。但是,如果我只注释掉ELSE IF它,它将ELSE按预期继续。我在这里错过了一些基本的东西吗?感谢您的任何意见。
编辑:两个消息框不只显示一个。我在使用 MessageBox.Show(addNewRecord.ToString()); 的 IF 语句之前检查两个布尔值的值;对于另一个布尔值也是如此。他们正在按预期工作。仅当我尝试使用 else if 或 OR 语句评估这两个布尔值时,才会出现问题。
以下是所有相关代码:
namespace E_Z_Rent
{
public partial class Bookings : Form
{
    bool addNewRecord = false;
    bool editCurrentRecord = false;
    public Bookings()
    {
        InitializeComponent();
    }
    private void bookingsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
        MessageBox.Show(addNewRecord.ToString());
        MessageBox.Show(editCurrentRecord.ToString());
        if (addNewRecord == false)
        { MessageBox.Show("No action selected. \nSave cancelled."); }
        else if (editCurrentRecord == false)
        { MessageBox.Show("No action selected. \nSave cancelled."); }
        else
        {
            MessageBox.Show("OK");
        }
    }
    private void EditFieldsCheckBox_CheckedChanged(object sender, EventArgs e)
    {
        if (EditFieldsCheckBox.Checked == true)
        {
            editCurrentRecord = true;
        }
        else 
        {
            editCurrentRecord = false;
        }
    }
    private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
    {
        addNewRecord = true;
    }
}
}
我通过以下方式使其按预期工作:
   if (addNewRecord == true || editCurrentRecord == true){
          MessageBox.Show("OK");
      }
      else
      {
          MessageBox.Show("No action selected. \nSave cancelled.");
      }
我仍然对此感到困惑,所以如果其他人能说出为什么会发生这种情况,我会回来查看。感谢大家的所有建议。