- PR -

WebBrowserクラスでMouseClickイベントを使いたいのですが

1
投稿者投稿内容
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2006-03-15 09:39



WebBrowserコントロールを利用して簡易ブラウザを作成中です
WindowsFormにコントロールを貼り付けてWebページを表示したり
戻る、進むなどの処理はできるのですが、マウスに関するイベントが
なかったのでいろいろと調べてみました

http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.webbrowser(VS.80).aspx
こちらのページにWebBrowserクラスと、WebBrowserBaseクラスの記述を見つけたので
さっそく、構文を参考に、クラスを作成してみましたが。

----------------------------------------------------------
Imports System.Runtime.InteropServices

<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public Class WebBrowser
Inherits WebBrowserBase
End Class
----------------------------------------------------------

Inherits WebBrowserBase の部分でエラーになります
エラーメッセージは
「クラス 'System.Windows.Forms.WebBrowserBase' にはアクセス可能な 'Sub New' が含まれていません。
このクラスを継承できません。」
です

ただ、MSDNのページを見ていると
MouseClick等のイベントは、WebBrowserBaseから継承すると書いてあるので
継承の方法が間違っているのかと思い調べてみましたがInherits以外の情報は
見つけることができませんでした。

どのようにすれば、WebBrowserクラスからMouseClickイベントが利用できるように
なるのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-15 09:55
引用:

バニラミントさんの書き込み (2006-03-15 09:39) より:

こちらのページにWebBrowserクラスと、WebBrowserBaseクラスの記述を見つけたので
さっそく、構文を参考に、クラスを作成してみましたが。


どうも、誤解されているように思います。
あれは「内部的にこう定義されてますよ」というもので、いわばメタデータのようなものです。
そのまま、WebBrowser クラスを使えばよろしいのではないかと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-03-15 10:22
引用:

ただ、MSDNのページを見ていると
MouseClick等のイベントは、WebBrowserBaseから継承すると書いてあるので


WebBrowser クラスが MouseClick の実装を WebBrowserBase から継承しているという事です。(WebBrowser が新規に作ったわけではない、という意味)

引用:

「クラス 'System.Windows.Forms.WebBrowserBase' にはアクセス可能な 'Sub New' が含まれていません。
このクラスを継承できません。」


多分、WebBrowserBase のコンストラクタが Friend になっているため、同じアセンブリ内からしかコンストラクタを呼べませんということです。

引用:

このコントロールでは、このイベントはサポートされていません


MSDN にはこう書かれていますね。クリックがとれないのでしょうか?
ヘルプの説明を WebBrowserBase から引っ張ったままで、説明自体が思いっきり間違っている気がするのですが…。
(本当にイベントとれないのかな?)
_________________
囚人のジレンマな日々
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2006-03-15 12:49
引用:

MSDN にはこう書かれていますね。クリックがとれないのでしょうか?
ヘルプの説明を WebBrowserBase から引っ張ったままで、説明自体が思いっきり間違っている気がするのですが…。
(本当にイベントとれないのかな?)


HtmlDocument のマウスイベントを使う必要があるかと。
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2006-03-15 17:39
みなさんレスありがとうございます。
いろいろと試してみましたが、WebBrowserクラスの候補には
Mouse関連のイベントはありませんでした

HongliangさんのレスのHtmlDocumentというのについて
調べてみたいと思います。


YAS
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 59
投稿日時: 2006-03-15 18:43
バニラミントさん,こんばんは。

私もWebBrowserコントロールにマウス関係のイベントが欲しかったことがあり,
その時にはWebBrowserコントロールをサブクラス化し,MouseDownイベントを
拡張しました。

下のアドレスにその時のことをまとめてあります。
よろしければ参考にしてください。

http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserMouseDownEvent.htm

ちなみに,第4・第5ボタンを戻る・進むに対応させる場合には下のアドレスを
参考にしてみてください。

http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserWM_APPCOMMAND.htm

[ メッセージ編集済み 編集者: YAS 編集日時 2006-03-15 19:09 ]
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-03-15 19:21
Webbrowser.Document.Click
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2006-03-15 19:44
レスありがとうございました
早速リンク先を参考にためしてみたら
無事動きました。
本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)