ボタンの制御に関して

解決


SAHO  2012-06-07 14:29:56  No: 147638  IP: 192.*.*.*

開発環境:VB2008  Windows7

教えて下さい。

画面上にボタンを配置していますが、そのボタンを”ENTERキー”で押せるように
したいと考えています。

色々ホームページ等で検索した結果、

  'Enterキー押下で動作するボタンの設定
  Me.AcceptButton = Me.Button1


というものが見つかりましたが、この場合だと、ボタンにカーソルがない状態でも
エンターが押された時点でボタンを押したと同じ動きをしてしまいます。

なんとかTAB等でボタンまでカーソルを遷移させ、ボタンの上にカーソルが来た
状態ではじめてエンターでボタンを押せるような形にできないかと考えています。

良い方法がありました教えて下さい。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2012-06-07 14:46:47  No: 147639  IP: 192.*.*.*

これでどうでしょう。

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
  If (TypeOf ActiveControl Is Button) AndAlso (keyData = Keys.Enter) Then
    DirectCast(ActiveControl, Button).PerformClick()
    Return True
  Else
    Return MyBase.ProcessCmdKey(msg, keyData)
  End If
End Function

編集 削除
SAHO  2012-06-07 14:55:05  No: 147640  IP: 192.*.*.*

魔界の仮面弁士様、いつもご回答ありがとうございます。

すごいです!!  感動しました!!!

ありがとうございました。

編集 削除