タイトル : 一応解決しました 投稿日 : 2006/02/16(Thu) 16:27 投稿者 : YAS
[OSのVer]:Windows XP [VBのVer]:VB2005 WebBrowserクラスを継承して,PreProcessMessageメソッドをオーバーライドすることで解決することが 出来ました。 WebBrowserBase.PreProcessMessageメソッドのヘルプに「独自に作成したコードから直接使用するため のものではありません。」と書かれていたので使ってはいけないんだと思い,気づくのに時間がかかり ました。 以下の様なコードでWebBrowserコントロールのCtrl-NやCtrl-Pを無効にすることができました。 全部自己レスで完結してしまいました。掲示板を汚して申し訳ありませんでした。 Public Class Form1 WithEvents Browser As New ExWebBrowser Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Me.Browser.Dock = DockStyle.Fill Me.Controls.Add(Browser) Me.Browser.GoHome() End Sub End Class Class ExWebBrowser Inherits WebBrowser Public Overrides Function PreProcessMessage(ByRef msg As System.Windows.Forms.Message) _ As Boolean Const WM_KEYDOWN As Integer = &H100 If msg.Msg = WM_KEYDOWN Then Dim keyCode As Keys = CType(msg.WParam, Keys) And Keys.KeyCode If My.Computer.Keyboard.CtrlKeyDown Then Select Case keyCode Case Keys.N Debug.Print("Ctrl-Nが押された") Return True Case Keys.P Debug.Print("Ctrl-Pが押された") Return True End Select End If End If Return MyBase.PreProcessMessage(msg) End Function End Class |