winforms 非常简单的if语句在Windows窗体中不起作用

brtdzjyr  于 2022-11-17  发布在  Windows
关注(0)|答案(1)|浏览(162)

代码很简单:

namespace Textboxta10_karakterde_1_alt_satira_gecen_program
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int charNumber = 0;
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (charNumber >= 2)
            {
                MessageBox.Show("Hey");

                if (charNumber % (2) == 0)
                {
                    MessageBox.Show("Hey");

                    textBox1.AppendText(Environment.NewLine);                    
                }

                charNumber++;
                MessageBox.Show("Hey");
            }
        }
    }
}

当charNumber可被2整除时,它不会显示“嘿”消息,也不会转到下面的行。
但是,如果我将代码改为if (charNumber <= 2)而不是if (charNumber >= 2),它确实会按预期显示“Hey”消息,并按预期在下一行写入下一个字符。
我不明白这个问题。

kq4fsx7k

kq4fsx7k1#

charNumber被初始化为0,并且在发布的代码中永远不会是0以外的任何值,因为增量在外部if块中,它只在charNumber〉= 2时运行。也许您希望charNumber++;像这样位于外部if块之外?

int charNumber = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (charNumber>=2)
    {
        MessageBox.Show("Hey");

        if (charNumber % (2) == 0)
        {
            MessageBox.Show("Hey");

            textBox1.AppendText(Environment.NewLine);                    
        }
        
        MessageBox.Show("Hey");
    }
    charNumber++;
}

相关问题