初めまして笑みです。
VB5.0を使っています。VBの初心者です。下記のことに関して教えていただけますか。
1.テキストボックス1に3文字以上入力できないようしたいですが、どうしたらいいですか。
2.テキストバックス2に3文字が入力された直後、すぐテキストボックス1の文字と比較したいですが、いい方法がありますか。
よろしくお願いします
ヒントだけ書いときます。わからないときはまた聞いてください。
ヒント1. Text1 と Text2 の Changeイベントを使う。
ヒント2. If文を使う。
ヒント3. テキストボックス1の文字列は Text1.Text で取得できる。
ヒント4. 文字列の長さはLen関数を使う。
この件は解決しました。どうもありがとうございます。
別の件でまたちょっと教えていただきたいことがあります。
Enterキーを無視する方法がありますか。
テキストボックスにBarCodeのデータを読み込んでいます。
読んだ後に必ず入力された文字列が消えます。その原因はBarCode Readerは
自動的に文字列の最後にEnterを入れたと思います。
文字列が消えない方法がありますか。
度々すみませんが、よろしくお願いします。
下のようにすればEnterキーをキャンセルできます。
ただ、私はバーコードリーダーを使ったことがないので、
バーコードリーダーの入力でKeyPressイベントが発生するのかどうかはわかりませんが...
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
End If
End Sub
> 自動的に文字列の最後にEnterを入れたと思います。
> 文字列が消えない方法がありますか。
VB5.0 では Enter を入れると文字列が消えるんですか。。
自分のプログラムで消しているのではなくって?
ご返事をいただきまして、誠にありがとうございます。
こちらの開発環境はWindowsNT, VB5.0です。
バーコードリーダーは文字を読み込んだ後に改行しているようです。そのため
テキストボックスで表示された文字列は消えてしまいました。
ム様の方法でやって見ましたが、効かない見たいです。
別の方法がないかなとちょっと困っています。
ご存じな方が是非教えていただきたいと思います。
よろしくお願いします。
》笑みさん
> この件は解決しました。どうもありがとうございます。
どのようにして解決されたのでしょうか?
> BarCode Readerは自動的に文字列の最後にEnterを入れたと思います。
製品によっては、末尾制御コード(Enter, Tab等)の送出を On/Off するための
スイッチ、または設定用バーコードが付属している事がありますが、
そういったものは無いのでしょうか?
> Enterキーを無視する方法がありますか。
そのバーコードリーダーが、PS/2 接続や USB 接続などといった、
キーボード インターフェイスとして認識されるタイプの製品であれば、
VB からは KeyPress イベント内で判断できます。
(この場合、そもそも TextBox を使わずに、Form のみで判定する事も可能)
一方、キーボード入力ではなく製品(COMポートに接続するタイプなど)では、
そもそも Enter への変換を、メーカー提供アプリやドライバ、あるいは
自作アプリ側で行っているでしょうから、その処理を握り潰せば良いかと。
》ムさん
> Private Sub Text1_KeyPress(KeyAscii As Integer)
TextBox に MaxLength プロパティを指定している場合、文字数上限を超えると
VB5 では KeyPress が発動しませんので、その点は注意してください。>笑みさん
もし、MaxLength プロパティを併用する必要がある場合には、
(案1) TextBox の KeyPress イベントの代わりに、
Form の KeyPress イベントを利用する(要 KeyPreview = True)。
(案2) MaxLength を、末尾 Enter の分だけ大目に見積もっておく。
(案3) KeyDown イベント等と併用する。
などといった対策になる可能性があります。
原因を調べようとしてください。
こちらでは[VB5.0]の環境を用意するのは難しいので[VB6.0]で確認しています。
> ム様の方法でやって見ましたが、効かない見たいです。
魔界の仮面弁士さんの情報を参考にすると、効かないのではなく
イベント自体が起こってないのでは?
それなら
> 別の方法がないかなとちょっと困っています。
これは間違った考え方でしょう。
> バーコードリーダーは文字を読み込んだ後に改行しているようです。そのため
> テキストボックスで表示された文字列は消えてしまいました。
[VB6.0]ではキーボード入力で改行しても文字列は消えませんでした。
改行したら文字列が消えるテキストボックスなど、常識で考えて使えないと
思いますが、改行して文字列を消しているのはテキストボックスなんですか?
追加したプログラムではなくて?