DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォーマットについて

環境/言語:[WinXP,VB.NET]
分類:[.NET]

宜しくお願いします。
textboxで***-****(上3桁、下4桁で間にハイフン)と入力するtextboxを
郵便番号用に作っているのですが、下記のようにフォーマットを指定しようと
しているのですが上手く動作してくれません。
どなたかアドバイスをお願いします<(_ _)>
エラーは特にでていません。
コードを記入しているイベントの場所が悪いのでしょうか?


Private Sub Form1_Load(・・・)〜

TextBox1.Text.Format(TextBox1.Text, "^\d{3}-\d{4}$")
'もしくは→TextBox1.Text.Format(TextBox1.Text, "###-####")

endsub
■No10247に返信(さえさんの記事)
さえさん こんにちわ。okaと申します。

ソースを見るをフォームロードの処理だったので、ユーザーの入力ではなく保持している7桁の数字を単純に###-####形式にて表示したいだけなのかなあと思ったのですが、それだと、

Dim sZipCode As String

sZipCode = "1234567"
TextBox1.Text = sZipCode.Substring(0, 3) & "-" & sZipCode.Substring(3, 4)

こんな感じでどうでしょうか?
okaさんありがとうございます。

説明不足ですみません!
ハイフンは固定で常に表示(バックスペースなどでも消えないように)したい
のです。あとアスタリスクも数値を入力した箇所以外は表示しておこうと
考えています。

キープレスイベントでも挑戦してみたのですがダメでした。
基本的に無理なのでしょうか?
こんにちは、じゃんぬ です。

■No10251に返信(さえさんの記事)
> 説明不足ですみません!
> ハイフンは固定で常に表示(バックスペースなどでも消えないように)したいのです。

となると、全然質問内容が変わってきますね。

> あとアスタリスクも数値を入力した箇所以外は表示しておこうと考えています。

MaskEditBox みたいな感じですかね。

> キープレスイベントでも挑戦してみたのですがダメでした。
> 基本的に無理なのでしょうか?

MaskEditBox を素直に使っても良いのでは?
または、そういうカスタム コントロールを自作する。
私ならば、ハイフンは Label にして TextBox は分割しますね。
ユーザビリティ的にも、その方がオペレータには都合が良いですから。
■No10251に返信(さえさんの記事)

okaです。

> 説明不足ですみません!
> ハイフンは固定で常に表示(バックスペースなどでも消えないように)したい
> のです。あとアスタリスクも数値を入力した箇所以外は表示しておこうと
> 考えています。

ちょっと確認ですが、テキストボックスにはユーザーが任意の郵便番号を入力するのでしょうか?
それとも、私が最初にお聞きした通り、保持している7桁の数字をハイフンを付け加えた形式で郵便番号として表示するだけなのでしょうか?

後者の場合は、先程のやり方でできると思いますが、前者の場合は、キープレスイベントとキーダウンイベントによる入力制御を行う必要があります。
その場合は結構めんどくさいと思いますが、単にテキストボックスを2つに分けるのではだめですか?

また、アスタリスクを表どのタイミングで表示しようとお考えでしょうか?
じゃんぬさんokaさんありがとうございます。
MaskEditBoxを触ってみたのですが、ほぼ考えていた動作と同じでした。
今はカスタムコントロールで挑戦しています。
ちょと初心者には敷居が高そうですね。

okaさんへ
> ちょっと確認ですが、テキストボックスにはユーザーが任意の郵便番号を入力するのでしょうか?
> それとも、私が最初にお聞きした通り、保持している7桁の数字をハイフンを付け加えた形式で郵便番号として表示するだけなのでしょうか?

入力してもらいます!
表示だけではありません。


>単にテキストボックスを2つに分けるのではだめですか?

テキストボックスを2つに分ける方法はやってみて上手くできました。
初心者なので色々な方法でやる勉強をしていまして・・・
すみません<(_ _)>


> また、アスタリスクを表どのタイミングで表示しようとお考えでしょうか?

まずプログラム起動時に***-****と表示しようと思ってます。
それからユーザーに入力してもらおうと・・・
■No10256に返信(さえさんの記事)

okaです。

とりあえずは、じゃんぬめっとさんのおっしゃられていたMaskEditBoxを使って、入力コントロールを2つに分ければ問題がなさそうですね。

>>また、アスタリスクを表どのタイミングで表示しようとお考えでしょうか?
>
> まずプログラム起動時に***-****と表示しようと思ってます。
> それからユーザーに入力してもらおうと・・・

これに関しては、私的な意見としてはアスタリスクがない方がいいような気もしますが・・・。

色々な場面でテキストボックスの入力制御が必要になってくると思いますので、時間があればいい機会なので、練習してみるのもいいと思いますよ。
■No10257に返信(okaさんの記事)

okaの自己レスです。

> とりあえずは、じゃんぬめっとさんのおっしゃられていたMaskEditBoxを使って、入力

すみません、じゃんぬさん。
じゃんぬねっとさんの打ち間違いです。
みなさんアドバイスありがとうございます。
また宜しくお願いします!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板