如何仅将屏蔽文本框中的数字复制到标签?

时间:2014-06-01 12:44:37

标签: c# winforms maskedtextbox

我制作了一个蒙版文本框,用于使用蒙版(999)000-0000 保存数字,我只想在标签中显示数字,但是当我这样做时,它还复制了parantheses和line。
我知道它会复制所有文字。我怎么只能复制不带面具输入的数字? (窗体)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = maskedTextBox1.Text;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

一种解决方案是在读取值之前将TextMaskFormat设置为ExcludePromptAndLiterals

maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
Console.WriteLine(maskedTextBox1.Text); 
//will print 3123 when value in the mask textbox is (31) 23 for mask (00) 00

此后设置格式化:

maskedTextBox1.TextMaskFormat = MaskFormat.IncludeLiterals;

即使您不将格式设置回IncludeLiterals,UI控件仍会显示屏蔽文本(31) 23,并且会照常工作。如果您的其他逻辑依赖于屏蔽的Text字段,则会执行此操作。

因此,如果您没有此类依赖项,则可以在maskedTextBox1

的属性窗口中的Visual Studio设计器中设置此值。