C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: F5キー押下 フォーム更新処理


(過去ログ 70 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■41085 / inTopicNo.1)  F5キー押下 フォーム更新処理
  
□投稿者/ hs (133回)-(2009/09/11(Fri) 18:45:46)

分類:[VB.NET/VB2005 以降] 

VS2008-VB
いつもお世話になっております。

WindowOSやあらゆるアプリケーションに当たり前のように備わっている F5キー押下でフォーム(最新情報)に更新する機能を実現したいと考えております。

Private Sub Form_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
  If e.KeyCode = Keys.F5 Then
    MsgBox("F5が押下されました。")
    '更新処理PG
  End If
End Sub

そこで疑問なのですが、上記のPGで事足りるものだと考えていたのですが、Meにフォーカスがないとイベントは発生しません。
さらにFormにフォーカスを取得できるいずれかのコントロールが配置してあると、フォーム自身にフォーカスを取得することができません。
で、こんな時いちいち全てのコントロールのKeyDown時に上記PGを設置するのはどうかと思い悩んでおります。

また単純に
Private Sub Form_KeyDown(...........) Handles MyBase.KeyDown, TextBox.KeyDown, Button.KeyDown .......
のように記述するのも手かと思ったのですが、やはり違和感があります。

こんなケースの場合、どうすればよいのでしょうか?
よろしくお願いします。


引用返信 編集キー/
■41087 / inTopicNo.2)  Re[1]: F5キー押下 フォーム更新処理
□投稿者/ Hongliang (465回)-(2009/09/11(Fri) 18:51:49)
KeyPreview プロパティを使うのが一般的でしょう。
引用返信 編集キー/
■41088 / inTopicNo.3)  Re[1]: F5キー押下 フォーム更新処理
□投稿者/ Jitta on the way (431回)-(2009/09/11(Fri) 18:51:59)
No41085 (hs さん) に返信

KeyDown より、KeyUp の方が良いと思います。押しっぱにされたら…

Form に、KeyPreview というプロパティがあると思います。
引用返信 編集キー/
■41089 / inTopicNo.4)  Re[2]: F5キー押下 フォーム更新処理
□投稿者/ hs (134回)-(2009/09/11(Fri) 19:01:30)
No41087 (Hongliang さん) に返信
> KeyPreview プロパティを使うのが一般的でしょう。


No41087 (Jitta on the way さん) に返信
> KeyDown より、KeyUp の方が良いと思います。押しっぱにされたら…
> Form に、KeyPreview というプロパティがあると思います。

あっさり解決いたしました。
また何かあった時は、よろしくお願いします。
引用返信 編集キー/
■41090 / inTopicNo.5)  Re[3]: F5キー押下 フォーム更新処理
□投稿者/ hs (135回)-(2009/09/11(Fri) 19:01:57)
あっさり解決いたしました。
また何かあった時は、よろしくお願いします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -