これが私のコードです:
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
値を持っています。上記のようにすると、メッセージボックスはブール値がfalse
. ただし、コメントアウトするだけで、意図したとおりELSE IF
に続行されます。ELSE
ここで何か基本的なことが欠けていますか? ご意見ありがとうございます。
編集: 両方のメッセージ ボックスに 1 つだけが表示されるわけではありません。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.");
}
私はまだこれに困惑しているので、他の誰かがなぜこれが起こったのかを言うことができれば、私はチェックし直します. みんなのすべての提案に感謝します。