C#总是假布尔

-1 c# boolean

有人可以帮忙吗?我无法理解为什么当我按下按钮7时bool floorOne总是设置为false,即使我先按下button3或button1.这应该是一个相当简单的问题,只有在初始化时,按下button2或按下button4时才会出错.我不知道它是如何回归虚假的.

它可能有一个相对简单的解决方案,但我找不到它,谢谢你的时间.

编辑:当我调试时,它显示为false,我不知道这些信息是否会有所帮助.我知道很多代码可能不需要包含在这里,但是为了防止出现问题,我想我应该添加它.

编辑2:太棒了,非常感谢大家!

using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Elevator
{
    public partial class Form1 : Form
    {
        public bool doorsOpen;
        public bool floorOne;
        public bool groundFloor;
        public Form1()
        {
            InitializeComponent();

            pictureBox1.Visible = false; // This is the bottom floor doors closed picture
            pictureBox2.Visible = true; // This is the bottom floor doors open picture
            pictureBox3.Visible = false; // This is the top floor doors closed picture
            pictureBox4.Visible = false; // This is the top floor doors open picture
            floorOne = false;
            richTextBox1.Text = "Ground floor";
            button1.BackColor = Color.Gray;
            button2.BackColor = Color.Gray;
            button3.Enabled = true;
            button4.Enabled = false; // This makes it impossible to click the buttons if
            button5.Enabled = false; // the lift is already on that floor, to start with this is the
            button6.Enabled = true;  // ground floor.
            button5.BackColor = Color.Black;
            button6.BackColor = Color.Red;
            doorsOpen = true;
            richTextBox2.Text = "Doors open";
        }

        public void Form1_Load(object sender, EventArgs e)
        {

        }

        public void button3_Click(object sender, EventArgs e)
        {
            if (doorsOpen == true)
            {
                doorsOpen = false;
                richTextBox2.Text = "Doors closed";
            }
            pictureBox1.Visible = false; // This is the bottom floor doors closed picture
            pictureBox2.Visible = false; // This is the bottom floor doors open picture
            pictureBox3.Visible = true; // This is the top floor doors closed picture
            pictureBox4.Visible = false; // This is the top floor doors open picture
            bool floorOne = true;
            button1.BackColor = Color.Gray;
            button2.BackColor = Color.Gray;
            richTextBox1.Text = "First floor";
            button3.Enabled = false;
            button4.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = false;
            button5.BackColor = Color.Red;
            button6.BackColor = Color.Black;
        }

        public void button4_Click(object sender, EventArgs e)
        {
            if (doorsOpen == true)
            {
                doorsOpen = false;
                richTextBox2.Text = "Doors closed";
            }
            pictureBox1.Visible = true; // This is the bottom floor doors closed picture
            pictureBox2.Visible = false; // This is the bottom floor doors open picture
            pictureBox3.Visible = false; // This is the top floor doors closed picture
            pictureBox4.Visible = false; // This is the top floor doors open picture
            bool floorOne = false;
            button1.BackColor = Color.Gray;
            button2.BackColor = Color.Gray;
            richTextBox1.Text = "Ground floor";
            button3.Enabled = true;
            button4.Enabled = false;
            button5.Enabled = false; 
            button6.Enabled = true;  
            button5.BackColor = Color.Black;
            button6.BackColor = Color.Red;
        }

        public void button7_Click(object sender, EventArgs e)
        {
            doorsOpen = true;
            richTextBox2.Text = "Doors open";
           if (floorOne == true)
           { 
            pictureBox1.Visible = false; // This is the bottom floor doors closed picture
            pictureBox2.Visible = false; // This is the bottom floor doors open picture
            pictureBox3.Visible = false; // This is the top floor doors closed picture
            pictureBox4.Visible = true; // This is the top floor doors open picture
           }
           else if (floorOne != true)
           {
               pictureBox1.Visible = false; // This is the bottom floor doors closed picture
               pictureBox2.Visible = true; // This is the bottom floor doors open picture
               pictureBox3.Visible = false; // This is the top floor doors closed picture
               pictureBox4.Visible = false; // This is the top floor doors open picture
           }
        }

        public void button1_Click(object sender, EventArgs e)
        {
            if (doorsOpen == true)
            {
                doorsOpen = false;
                richTextBox2.Text = "Doors closed";
            }
            pictureBox1.Visible = false; // This is the bottom floor doors closed picture
            pictureBox2.Visible = false; // This is the bottom floor doors open picture
            pictureBox3.Visible = true; // This is the top floor doors closed picture
            pictureBox4.Visible = false; // This is the top floor doors open picture
            bool floorOne = true;
            button1.BackColor = Color.Yellow;
            button2.BackColor = Color.Gray;
            richTextBox1.Text = "First floor";
            button3.Enabled = false;
            button4.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = false;
            button5.BackColor = Color.Red;
            button6.BackColor = Color.Black;

        }

        public void button2_Click(object sender, EventArgs e)
        {
            if (doorsOpen == true)
            {
                doorsOpen = false;
                richTextBox2.Text = "Doors closed";
            }
            pictureBox1.Visible = true; // This is the bottom floor doors closed picture
            pictureBox2.Visible = false; // This is the bottom floor doors open picture
            pictureBox3.Visible = false; // This is the top floor doors closed picture
            pictureBox4.Visible = false; // This is the top floor doors open picture
            bool floorOne = false;
            button1.BackColor = Color.Gray;
            button2.BackColor = Color.Yellow;
            richTextBox1.Text = "Ground floor";
            button3.Enabled = true;
            button4.Enabled = false;
            button5.Enabled = false;
            button6.Enabled = true;
            button5.BackColor = Color.Black;
            button6.BackColor = Color.Red;
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

dca*_*tro 6

因为在某些方法中,您声明了一个 floorOne变量,而不是修改现有的Form1字段.

更换

bool floorOne = true;
Run Code Online (Sandbox Code Playgroud)

floorOne = true;
Run Code Online (Sandbox Code Playgroud)