You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Forms中简单if语句逻辑异常问题求助

问题原因分析

你的代码核心问题在于**charNumber的初始值和递增逻辑的位置**:

  1. 初始状态下charNumber = 0,第一次触发textBox1_KeyPress事件时,charNumber >= 2的条件不成立,不会进入if代码块,charNumber也不会被递增。
  2. 后续每次按键触发事件时,charNumber始终保持为0,永远满足不了>=2的条件,自然不会执行任何消息框提示和换行逻辑。

而当你把条件改成charNumber <= 2时:

  • 第一次按键时charNumber=0满足条件,进入代码块执行消息框,随后charNumber被递增到1;
  • 第二次按键时charNumber=1满足条件,再次进入代码块,递增到2;
  • 第三次按键时charNumber=2满足条件,执行换行逻辑后递增到3;
  • 第四次按键时charNumber=3不再满足<=2,但此时你已经看到了预期的触发效果。

额外优化建议

如果你的需求是每输入2个字符就换行,正确的逻辑应该是在每次按键时先递增计数,再判断条件,比如:

int charNumber = 0;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    // 先计数当前输入的字符
    charNumber++;
    // 每2个字符换行
    if (charNumber % 2 == 0)
    {
        textBox1.AppendText(Environment.NewLine);
    }
}

内容的提问来源于stack exchange,提问作者Programmable Physics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:54:19