OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

テキストボックスについて

  • すぐに回答を!
  • 質問No.170905
  • 閲覧数108
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 72% (173/238)

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

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

以上2点,どうかよろしくお願いいたします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

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

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



2.たぶん無理。。。
改行コードを表現できないテキストボックスでは、タブの文字コードも表現できないと思います。。。
お礼コメント
38endoh

お礼率 72% (173/238)

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

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

このたびは,どうもありがとうございました。これからもよろしくお願いいたします。
投稿日時 - 2001-11-19 11:33:34
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル9

ベストアンサー率 48% (24/49)

1.ですがNo1.さんの方法でいいと思いますが 私が使用しているのは、フォームのイベントを使用しています。 こうすると、その他のコントロールを使用した場合も Beep音が出ません。 好き不好きだとは思います。 プログラムだとこんな感じ↓ '//==================================================================== ...続きを読む
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の過去ログでけんさくされては?
お礼コメント
38endoh

お礼率 72% (173/238)

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

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

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

このたびは,大変ありがとうございました。
投稿日時 - 2001-11-19 11:36:18


  • 回答No.3
レベル12

ベストアンサー率 65% (276/422)

方法ありました。 全体的にBEEP音を出さないのであれば、#2のHk2001さんの発言通りです。 しかし、この方法はマルチラインプロパティをTRUEにしますので、やはり Private Sub Text1_KeyPress(KeyAscii As Integer)   Select Case KeyAscii     Case vbKeyReturn       KeyAscii = ...続きを読む
方法ありました。
全体的に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イベントで、改行コードが入力されようとしている時に、改行コードを無くしてしまう処理を行うようにします。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ