- - PR -
TextBoxに決められた規則で文字列を入力するには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-03-09 11:27
よろしくお願いします。
VisualBasic.net Windouwsアプリケーションを作っています。 TextBoxに和暦で年号を入力する際に明治を1、大正を2、昭和を3、として 「昭和50年6月30日」を入力する場合に テンキーでの操作を 3,50,6,30 といった具合に数字だけで入力する方法を検討しているのですが、 私の知識では、Timerで常にTextBoxを監視して、入力する方法しか思いつきません。 自分ではもっと効率のよい方法があると信じているのですが、よい方法ありましたら、ご指導お願いします。 | ||||
|
投稿日時: 2005-03-09 11:35
入力は数字で、TextBox上の表示は「昭和50年6月30日」としたいのでしょうか? Tabに実際の入力値を保存しておき、KeyPressでキー入力された数値をTabに追加し、 その内容を編集して、TextBoxに表示するという方法ではどうでしょうか。 | ||||
|
投稿日時: 2005-03-09 11:39
>私の知識では、Timerで常にTextBoxを監視して、入力する方法しか思いつきません。
TextBox を監視するのであれば、Timer でなく、KeyPress イベントを監視すればよろしいように思います。 | ||||
|
投稿日時: 2005-03-09 12:48
たにくんさん、こんにちは。
#テンキーで操作するなら、 / (スラッシュ)区切りとか . (ドット)区切りの方が良さそうな気もしますが、それは置いといて。 MSDNライブラリの TextBox.TextChanged イベントの説明にテキストの内容を判定するサンプルコードがあったりします。 あと、Control.Validating イベント の使用例なんかも参考になるかも知れません。 | ||||
|
投稿日時: 2005-03-09 13:22
さな様、Fujiwo様、くちゃん様、ありがとうございます。
>>入力は数字で、TextBox上の表示は「昭和50年6月30日」としたいのでしょうか? まったくその通りです。説明がベタで申し訳ないです。 >>#テンキーで操作するなら、 / (スラッシュ)区切りとか . (ドット)区切りの方が良さそうな気もしますが、それは置いといて。 「3,50,6,30」とうのは正確ではありませんでしたね。すみません。 「,」は分かりやすくと思い入れました。 テンキーでの正確な入力順番は 「350630」です(-_-; さな様、Fujiwo様のご指摘通り、keyPressを駆使して作りたいと思います。 きくちゃん様ライブラリーを探していただきありがとうございます。 ぜひ、参考にさせて頂きます。 進展ありましたら、またご報告させていただきます。ありがとうございます。 [ メッセージ編集済み 編集者: たにくん 編集日時 2005-03-09 13:23 ] | ||||
|
投稿日時: 2005-03-09 13:33
こんにちは、じゃんぬねっと です。
私の場合、それだけのためにそんな機能を実装すること自体面倒なので、 TextBox を継承したカスタム コントロールに Format プロパティなどを追加しています。 http://jeanne.wankuma.com/library/ 日付専用ならそれはそれで良いのですが、Format が決めれれば、 別のプロジェクトでも使えますよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-03-09 20:52
> テンキーでの正確な入力順番は
> 「350630」です(-_-; 1月2日と、12月は、どうやって区別しましょうか?「35012」さて、これは「昭和50年」の、12月?1月2日? また、BSキーやDELキーはどうします? KeyPressはお勧めしません。「350630」という文字列を、Pasteされたらどうします?もちろん、どこかに「昭和60年5月1日」という文字列があったので、それをコピーペーストすることも想定できませんか?もちろん、こう考え始めると「2000/1/1」とかも考慮しなければならなくなってきますけど。 ということで、仕様の詰めが甘いと思います。ユーザは、仕様を考えた人が想定したとおり(仕様通り)に使用するとは限りません。 # 夜しか出てこられなくてすみません。 _________________ |
1