- PR -

VB6.0のTextboxの入力数値の判別方法

1
投稿者投稿内容
さじまさん
会議室デビュー日: 2003/11/25
投稿数: 2
投稿日時: 2003-11-25 16:42
はじめまして,初めて質問させていただきますのでよろしくお願いします。
やりたいことは、Textbox内に15〜60までのどれかを入力し、入力し終わったと同時にある処理を走らせます。そして指定範囲以外の数値のときはmsgboxを表示するようにしたいのです。
しかし、いろいろ作ったのですが、例えば15を入力するとき、まず1を入れるとmsgboxが表示され、つぎに5を入れると15の値を使った処理が走ってしまいます。
何かよい方法はありますでしょうか?
ima
会議室デビュー日: 2003/11/21
投稿数: 6
投稿日時: 2003-11-25 17:32
いくつか方法はあると思いますが、
数字を入力後、Enterキーを押したら、
判定処理を行うようにしては如何でしょうか?

では、具体的方法ですが、

目的とするテキストボックスの「_KeyDown」メソッド内に、
以下のようにコードを書きます。

If keyCode = 13 then
'ここに実際に行いたい処理を書く
end If

この13というのが、Enterキーのコードです。
目的のテキストボックス内で、Enterキーを押すと、
keyCode(_KeyDownメソッドのデフォルトの引数です)に13がセットされます。
こうする事によって、他のキーが押された時は、反応せず、
正しい判定が出来ます。

参考になりましたでしょうか?
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2003-11-26 11:28
デフォルトのイベントに
ロストフォーカスイベントがあります。

テキストボックスからフォーカスが外れた時に検査してはいかがでしょうか。

キープレスイベントでリターンを設定している場合は、更にそこから、
ロストフォーカスイベントプロシージャを呼び出してやれば良いと思います。

参考になりましたでしょうか?
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2003-11-26 11:54
さじまさん

単なる思い付きですが...
入力されている数値が範囲内なら即処理し、
入力されている数値が範囲外なら一定時間待ってから処理するというのはどうでしょうか?
ちょっと
会議室デビュー日: 2003/11/26
投稿数: 1
投稿日時: 2003-11-26 12:23

環境が無いので定かでは有りませんが
記憶では
Validateイベントを使用して入力値のチェックを行うのが
VB6.0では一般的だったような気がします
(ValidateイベントはCausesValidation プロパティが真(True)に設定されている(第2の)コントロールにフォーカスが移動する前に発生します)

1、イベント発生時に数値であるかのチェック
2、数値であれば、範囲のチェック

如何でしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)