1. テキストボックスの MultiLine プロパティを False に設定すると,そのプログラムの実行中に,テキストボックス内でリターンキーが押されると,エラー音が発生します。これを抑止したいのですが,どうすればよいのでしょうか? なお,MultiLine プロパティを True にするとエラー音は発生しなくなりますが,そのかわりに改行が行われてしまいます。MultiLine プロパティを True にして改行を抑止する方法でも構いません。どうか教えていただきたく存じます。

2. テキストボックス入力中にタブキーが押されたことを認識させたいのですが,KeyDown で認識させようとしてもうまくいきません。単にフォーカスが動いてしまうだけになってしまいます。フォーカスを移動させずに,タブキーが押されたことを認識させる方法を教えてください。

以上2点,どうかよろしくお願いいたします。

A 回答 (3件)

方法ありました。


全体的にBEEP音を出さないのであれば、#2のHk2001さんの発言通りです。

しかし、この方法はマルチラインプロパティをTRUEにしますので、やはり
Private Sub Text1_KeyPress(KeyAscii As Integer)
  Select Case KeyAscii
    Case vbKeyReturn
      KeyAscii = 0
  End Select
End Sub
を使用してください。

それと、フォーム中のコントロールで、TabStopプロパティの存在するコントロールを全てFalseに設定してください。
それによりTABコードも入力可能となります。


どういうことかというと、
※MultiLine=Falseのとき
 文字コードをそのまま表示します
※MultiLine=Trueのとき
 文字コードを適した状態で表示します
要するに、Trueのときは改行コードやタブ文字コードを、改行文字/タブ文字として表現が可能になるようです。
しかし、改行コードは必要が無いのでKeyPressイベントで、改行コードが入力されようとしている時に、改行コードを無くしてしまう処理を行うようにします。
    • good
    • 0

1.ですがNo1.さんの方法でいいと思いますが


私が使用しているのは、フォームのイベントを使用しています。
こうすると、その他のコントロールを使用した場合も Beep音が出ません。
好き不好きだとは思います。

プログラムだとこんな感じ↓

'//===================================================================================================
'// Beep音消去
'//===================================================================================================
Private Sub Form_KeyPress(KeyAscii As Integer)

'Enter & ESC キーが押されたときのBeep音を消す処理
If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyEscape Then
KeyAscii = 0
End If

End Sub

2.ですがこれもNo.1さんのとうりコントロールのイベントでは、制御できません
API関数か何かでわかるようなことをどこかで見かけたような気がします。
教えてGooの過去ログでけんさくされては?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。2.の件につきまして,早速過去ログを検索してみました。その結果,

http://www.kit.co.jp/vbit/QAndA01.htm#Tabキーを判別するには

に解決方法が記載されてありました。ログも検索せずに質問をしてしまい,申し訳ございませんでした。

このたびは,大変ありがとうございました。

お礼日時:2001/11/19 11:36

1.たぶんこれで音は出なくなると思います。



Private Sub Text1_KeyPress(KeyAscii As Integer)
  Select Case KeyAscii
    Case vbKeyReturn
      KeyAscii = 0
  End Select
End Sub



2.たぶん無理。。。
改行コードを表現できないテキストボックスでは、タブの文字コードも表現できないと思います。。。
    • good
    • 0
この回答へのお礼

早速のご回答,大変ありがとうございます。TAGOSAKU7 さんには前回の質問のときもお世話になり,ありがとうございました。

さて1.の件は,TAGOSAKU7 さんのご回答の方法で解決いたしました。私が書いたプログラムの中では,すでに KeyPress でリターンキーの検出をしておりましたので,単に KeyAscii = 0 を追加するだけで解決いたしました。

このたびは,どうもありがとうございました。これからもよろしくお願いいたします。

お礼日時:2001/11/19 11:33

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

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ