如何将两个TextBox的值分别填入掩码为000/000的Masked Text Box前后段?
实现MaskedTextBox按TextBox1/TextBox2格式显示
要实现这个需求其实很简单,分两步走就行:
1. 设置MaskedTextBox的掩码格式
首先确保你的MaskedTextBox的Mask属性被设置为000/000——你可以在设计器的属性窗口里直接修改,或者用代码在窗体初始化时设置:
// 在窗体构造函数或Load事件中添加 MaskedTextBox1.Mask = "000/000";
2. 同步TextBox1和TextBox2的值到MaskedTextBox
接下来要把两个TextBox的内容分别填入掩码的前后半段,这里提供两种常用场景的实现方式:
场景一:实时同步(TextBox内容变化时自动更新)
给TextBox1和TextBox2的TextChanged事件绑定处理方法,每次内容变动就自动更新MaskedTextBox:
private void TextBox1_TextChanged(object sender, EventArgs e) { UpdateMaskedContent(); } private void TextBox2_TextChanged(object sender, EventArgs e) { UpdateMaskedContent(); } private void UpdateMaskedContent() { // 提取TextBox1中的数字,补0到3位并截断至前3位 string firstSegment = new string(TextBox1.Text.Where(char.IsDigit).ToArray()) .PadLeft(3, '0') .Substring(0, 3); // 对TextBox2做同样处理 string secondSegment = new string(TextBox2.Text.Where(char.IsDigit).ToArray()) .PadLeft(3, '0') .Substring(0, 3); // 直接拼接两段内容,MaskedTextBox会自动插入/分隔符 MaskedTextBox1.Text = $"{firstSegment}{secondSegment}"; }
这里加入数字过滤是为了避免用户输入非数字字符干扰掩码格式;PadLeft(3, '0')确保不足3位时前面补0,Substring(0,3)则截断超过3位的内容,严格匹配000/000的格式要求。
场景二:手动触发(比如点击按钮后更新)
如果不需要实时同步,只想在特定操作(比如点击确认按钮)后更新,只需把上面的UpdateMaskedContent()方法绑定到按钮的Click事件即可:
private void btnSync_Click(object sender, EventArgs e) { UpdateMaskedContent(); }
这样就能完美实现TextBox1的值/TextBox2的值的显示效果啦!
内容的提问来源于stack exchange,提问作者Parnal p
相关产品推荐
相关产品推荐

