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

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

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

Re[2]: メニューアイテムにショートカットキーを設定する場合について


(過去ログ 88 を表示中)

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

■52402 / inTopicNo.1)  メニューアイテムにショートカットキーを設定する場合について
  
□投稿者/ ハーツ (3回)-(2010/08/08(Sun) 20:08:30)

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

言語:Visual Basic 2008

フォーム上にMenuStripを配置し、その中のToolStripMenuItemにショートカットキーを設定しました。
ここでF5キーを押すと、情報を再表示するように処理したいのですが、
どうもWebBrowserがフォーム上にあると、F5キーを押すとWebBrowserの表示内容がリロードされてしまい、
ToolStripMenuItemに設定したショートカットキーが働きません。

例えば、ショートカットキーF5を設定したToolStripMenuItemのクリックイベントを以下のようにした場合です。

Private Sub 最新の情報に更新ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles 最新の情報に更新ToolStripMenuItem.Click
MsgBox("最新です")
End Sub

WebBrowserが画面上にない場合、F5キーを押すと"最新です"というメッセージボックスが表示されますが、
WebBrowserを画面に配置し、任意のURLをナビゲートした場合にF5キーを押すと、WebBrowserのリロードが発生し、
上記イベントは発生せず、"最新です"というメッセージボックスは表示されません。

WebBrowserのWebBrowserShortcutsEnabledやIsWebBrowserContextMenuEnabledをFalseにしても上記イベントは発生しません。
(WebBrowserShortcutsEnabledをFalseにすると、WebBrowserのリロードは発生しないようですが。)

この場合、WebBrowserがある場合でも、F5キーを押したときにこのショートカットキーを設定したToolStripMenuItemを働かせるには
どうしたらよいでしょうか?
宜しくお願い申し上げます。
引用返信 編集キー/
■52415 / inTopicNo.2)  Re[1]: メニューアイテムにショートカットキーを設定する場合について
□投稿者/ れい (951回)-(2010/08/09(Mon) 04:54:16)
No52402 (ハーツ さん) に返信
> この場合、WebBrowserがある場合でも、F5キーを押したときにこのショートカットキーを設定したToolStripMenuItemを働かせるには
> どうしたらよいでしょうか?

基本的には。
キー入力はフォーカスを持つ子コントロールから親コントロールへと伝達される仕組みになっています。
子コントロールが処理をした場合は親コントロールへ通知しません。

ですので。

WebBrowserもしくはその子コントロールがFocusを持っていなければ可能です。

キー入力が必要、等の理由でFocusが必要な場合は「PreviewKeyDown」を使うとよいかと思います。
「ショートカットキーを設定したToolStripMenuItemを働かせる」というのは実現できませんが、
同等のことが実現できます。

WebBrowserに無理やりごにょごにょするとか、
スクリプトを埋め込むとか、
そういった手がいくつかありますが、きちんと動作させるためにはかなりの手間が必要で、
オススメできません。
引用返信 編集キー/
■52478 / inTopicNo.3)  Re[2]: メニューアイテムにショートカットキーを設定する場合について
□投稿者/ ハーツ (4回)-(2010/08/10(Tue) 23:03:22)
> キー入力が必要、等の理由でFocusが必要な場合は「PreviewKeyDown」を使うとよいかと思います。
> 「ショートカットキーを設定したToolStripMenuItemを働かせる」というのは実現できませんが、
> 同等のことが実現できます。
ご連絡が遅くなり申し訳ありません。
PreviewKeyDownを使用して対応することにします。
ありがとうございました。m(__)m
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -