从Masked文本框中获取值

时间:2009-07-16 11:17:25

标签: c# .net

我已将MaskedTextBox's面具设置为:“Fl \ air H \ al ###。##,这里的内容:####。##”

当用户输入值时,最终文本如下所示:

Flair Hal 987.67,在这里:1234.12

从MaskedTextBox的Text中提取976.67和1234.12的最佳方法是什么。我正在寻找一个List,它将具有掩码的所有值(976.67,1234.12)。

掩码字符串中可以有任意数量的掩码,掩码可以是任何有效的掩码。

我想首先从Mask中删除'\',然后在for循环中继续比较Mask和Text并检测更改并将它们添加到List中。但这对我来说听起来并不好,我认为可能有更好的方法。

4 个答案:

答案 0 :(得分:1)

您的示例中有四个掩码值:987,67,1234,12。块由a分隔的事实。被视为一个是你自己的逻辑,所以我认为你只需要编写代码来自己获取信息。

查看MaskedTextBox及其MaskedTextProvider属性的EditPositions属性。 EditPositions会为您提供用户可以输入的Text内的位置。

答案 1 :(得分:1)

我发现没有好办法。正如adrianbanks所说,我必须自己编码来获取这些信息。

我编写了自己的usercontrol,它使用标签和maskedtexboxes的组合来获取输入。

我使用花括号来表示我在屏蔽文本框中的位置,而用户控件在每对花括号中放置一个蒙版文本框。 “Flair Hal {###。##},这里的内容:{####。##}”

然后我可以使用具有掩码值的值集合。

答案 2 :(得分:0)

我认为您将使用TextMaskFormat从.Text属性中删除文字和提示字符。这样你只能获得数字(和空格)。

答案 3 :(得分:0)

使用正则表达式。以下正则表达式适用于您的示例,但您可能需要根据实际掩码进行调整:

\ d * [。] \ d {2}