-1

顧客から電話番号を取得したいのですが、()__-__同様の形式で表示され、顧客が番号を入力しても消えず、結果を として取得したいと考えてい(555) 555-55ます。

どうすればそれを行うことができますか?使用すべき特定のコントロールはありますか?

4

1 に答える 1

0

必要なのは MaskedTextBox コントロールです。すぐに使えるものはありませんが、検索するとたくさんあります。たとえば、WPF 拡張ツールキットを確認してください。

上記のリンクから、市外局番付きの米国の電話番号の使用例:

<xctk:MaskedTextBox x:Name="_maskedTextBox"
      Mask="(000) 000-0000" ValueDataType="{x:Type s:String}" />

ここで、ゼロは必須の数字を表します。データがない場合、コントロールは次のようにレンダリングされます。

(___) ___-____

特殊なトークン以外のマスク内の文字は、上記の例の括弧のように、マスクのリテラル部分としてレンダリングされます。マスク トークンの一覧を次に示します。Sourceは、WPF ではなく古い Windows フォーム MaskedTextBox 用ですが、ツールキット バージョンは、他のほとんどの WPF バージョンと同様に同じ規則に従います。

0 数字、必須。この要素は、0 から 9 までの任意の 1 桁を受け入れます。

9 数字またはスペース、オプション。

# 数字またはスペース、オプション。この位置がマスクで空白の場合、Text プロパティでスペースとしてレンダリングされます。プラス (+) およびマイナス (-) 記号を使用できます。

L 手紙、必須。入力を ASCII 文字 az および AZ に制限します。[a-zA-Z]このマスク要素は、正規表現と同等です。

? レター、オプション。入力を ASCII 文字 az および AZ に制限します。[a-zA-Z]?このマスク要素は、正規表現と同等です。

& キャラクター、必須。AsciiOnly プロパティが true に設定されている場合、この要素は要素のように動作しLます。

C 文字、オプション。非制御文字。AsciiOnly プロパティが true に設定されている場合、この要素は要素のように動作し?ます。

A 英数字、オプション。AsciiOnly プロパティが true に設定されている場合、受け入れられる唯一の文字は、ASCII 文字の az と AZ です。

a 英数字、オプション。AsciiOnly プロパティが true に設定されている場合、受け入れられる唯一の文字は、ASCII 文字の az と AZ です。

. 10 進数のプレースホルダー。使用される実際の表示文字は、コントロールの FormatProvider プロパティによって決定される、フォーマット プロバイダーに適した小数点記号になります。

, 千のプレースホルダー。使用される実際の表示文字は、コントロールの FormatProvider プロパティによって決定される、フォーマット プロバイダーに適した 1000 桁のプレースホルダーになります。

: 時間区切り。使用される実際の表示文字は、コントロールの FormatProvider プロパティによって決定される、フォーマット プロバイダーに適した時間記号になります。

/ 日付区切り。使用される実際の表示文字は、コントロールの FormatProvider プロパティによって決定される、フォーマット プロバイダーに適した日付記号になります。

$ 通貨記号。表示される実際の文字は、コントロールの FormatProvider プロパティによって決定される、フォーマット プロバイダーに適した通貨記号になります。

< シフトダウン。後続のすべての文字を小文字に変換します

> シフトアップ。後続のすべての文字を大文字に変換します。

| 前のシフトアップまたはシフトダウンを無効にします。

\ エスケープ。マスク文字をエスケープして、リテラルに変換します。「\」はバックスラッシュのエスケープ シーケンスです。

于 2012-07-03T14:35:02.050 に答える