tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 一応解決しました
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。