VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/07/02(Sat) 08:22
投稿者おじん
Eメール
URL
タイトルForm_KeyDownについて

いつもお世話になります。
KeyPreview = Trueにして、キーインされた文字を取得することを
やろうとして、下記コードで実行しました。なお、フォームには
SSTabを貼り付けています。
まず、コード1で実行すると、KeyDownイベントが2度発生したかのように
キーインされた文字が2文字づつイミディエイト欄に表示されます。ここで
SSTabを取り除くと1文字になります。
勿論、ダブルクリックあるいは押しつづけると、それ相当の2文字づつに
なります。
それで回避のためコード2のようにやったのですが、SSTabを使用する場合
処理法、留意点がありませんか。
SSTabは何か一癖ある特別なコントロールですか。

よろしくご指導ください。

Option Explicit
Dim txt As String

'コード1:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
txt = txt & Chr(KeyCode)
Debug.Print txt
End Sub

'コード2
'Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Static flg As Boolean
'If Chr(KeyCode) = " " Then      '初期化するため
'txt = "": flg = False: Exit Sub
'End If
'flg = Not flg
'If flg Then Exit Sub     '一つだけ取る
'txt = txt & Chr(KeyCode)
'Debug.Print txt
'End Sub

Private Sub Form_Load()
KeyPreview = True
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -