WinForm开发中如何实现textBox1输入时自动更新textBox2的行数统计
问题原因
你当前的行数统计逻辑写在了textBox2的TextChanged事件中,只有textBox2内容发生改动时才会触发计算;而对应textBox1内容改动的textBox1_TextChanged方法为空,所以在textBox1中输入内容时不会触发统计更新。
修改方案
步骤1:调整事件逻辑
将统计逻辑移到textBox1的内容变更事件中,不需要保留textBox2的TextChanged绑定(避免修改textBox2时多余触发逻辑),修改后的代码如下:
private void textBox1_TextChanged(object sender, EventArgs e) { string strtext = textBox1.Text; // 若需要统计空行,请删除StringSplitOptions.RemoveEmptyEntries参数 var textArr = strtext.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); textBox2.Text = textArr.Length.ToString(); } // 此方法可直接删除,同时可以删除InitializeComponent中textBox2的TextChanged事件绑定代码 private void textBox2_TextChanged(object sender, EventArgs e) { }
可选优化
如果不需要手动修改textBox2的内容,可将其设为只读状态,避免误操作:
在InitializeComponent的textBox2配置段添加一行:
this.textBox2.ReadOnly = true;
也可以直接在窗体设计器的textBox2属性面板中把ReadOnly属性改为True。
内容的提问来源于stack exchange,提问作者Alexdgg
相关产品推荐
相关产品推荐

