配列宣言のコントロールはキーフォーカスが簡単に出来る?
  (C) 2001 A c t o r .N e t Soft Ware



 以下に公開するソースなどの著作は 篠田直樹 に復帰します。
原則として無許可で使用する事が出来ますが、ここに書かれている内容を
直リンクや引用などであたかも第三者が作成した様に見せたり如何なる事情でも金銭が発生する行為を禁止します。



例えば、スペースキーを押す毎にフォーカスを変えたいとします。
普通なら、if文を使ってフォーカスを明示的に移動させます。
32はスペースのキーコードを表します。


Private Sub Command1_KeyPress(Index As Integer, KeyAscii As Integer)
If 32 = KeyAscii Then
If Index = Command1.Count - 1 Then
Command1(0).SetFocus
Else
Command1(Index + 1).SetFocus
End If
End If
End Sub


VBではコントロールを使わない設定にすると、フォーカスは無視されて
次の昇順毎にフォーカスが飛ぶ様になっています。
ではこれを悪用してみましょう。


Private Sub Command1_KeyPress(Index As Integer, KeyAscii As Integer)
If 32 = KeyAscii Then
Command1(Index).Enabled = False
Command1(Index).Enabled = True
End If
End Sub


業務用アプリには良く、使われるテクニックです。



Copyright (C) 2001 A c t o r .N e t Soft Ware All Right Reserved