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

如何将两个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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:06:34