プロが教える店舗&オフィスのセキュリティ対策術

VisualBasic5で開発を行っているのですが、TextBoxの入力を不可能にする(入力カーソルもそこに移動できない)必要が出てきました。
もちろんEnabledプロパティをFalseにする方法があるのですが、この場合文字の色がグレーに変わってしまいます。
また、Labelを使用するパターンも「入力出来たり、入力不可にする」という取り決めがあるので、使えません。
TextBox内の文字色(BackColorも)をそのままにして、入力を拒絶する方法があれば、どなたか教えてください。
もちろんAPIを使用する方法でもかまいませんので…

A 回答 (3件)

確かにTextBoxのEnabledプロパティではFalseに設定した場合に薄れて見づらくなりますね。


標準ToolBoxの中にFrameオブジェクトというものがありますがご存知でしょうか?
このFrameオブジェクトの上にTextBoxを配置し、
入力の可否をTextBoxのプロパティでは無くFrameのプロパティで行ってみて下さい。
入力は出来なくなり文字の色も変化しませんよ。
    • good
    • 0
この回答へのお礼

なるほどです!Frameを使ってOptionButtonのグループ分けをして、Frameごと設定不可にしたことはあるのに、この方法は全く思い付きませんでした。私も頭が固すぎます。今後ともよろしくお願いいたします。

お礼日時:-0001/11/30 00:00

ピクチャーコントロールやフレームコントロール等のコンテナコントロールの上に子コントロールとしてテキストボックスを貼りつけ、テキストボックスではなく、コンテナ側の Enabled を False にすれば、文字色は単色表示されずに入力不可にすることができます。


BorderStyleをなしにすればコンテナの上に載ってるとは見た目上見えません。
また、複数のテキストボックスをまとめて入力不可にするときは、1つのコンテナに複数のテキストボックスを配置すれば、リソースの節約もできOKです。

他に、TabStop = False にして、Lockedプロパティを使用する方法もありますが、それだとTab移動ではフォーカスはとばされますが、クリックではフォーカスを得てしまいますね。
    • good
    • 0
この回答へのお礼

早速の御回答ありがとうございます。私もTabStopを使って、クリックでのフォーカスの移動は半ば強制的に以前の場所に戻すようにしてたのですが、このような簡単な方法があるとは"目から鱗"状態です。大変役立ちました。ありがとうございました。

お礼日時:-0001/11/30 00:00

TextBoxをFrameの上に置いてFrameのEnabledプロパティを


変更してはいかがですか?
    • good
    • 0
この回答へのお礼

なるほど、目から鱗! コロンブスの卵です。
やってみると快適快適! 分厚いAPIの本を読みながら試行錯誤していた日々が空しく思えます。
早速使ってみます!

お礼日時:-0001/11/30 00:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!