1

C# winforms で WebBrowser コントロールを使用しており、カーソルが置かれている Url に関する情報を取得できる必要があります。

したがって、複数の URL を持つデザイン モードの Web ページがあり、カーソルが 1 つの上にあるときに、リンクの ID を返すメソッドを呼び出したいと考えています。

ありがとう

4

3 に答える 3

2

を使用して、現在のスコープ内の要素を取得できることを使用IHTMLCaretして、そこからカーソル位置を取得できます。IMarkupPointer

于 2009-02-09T11:54:33.493 に答える
0

webBrowser コントロールには、Links コレクションを持つ Document プロパティがあります。各リンクは、タップできるイベントを持つ HTMLElement です。繰り返しますが、「カーソル」の意味がわかりません。Web の世界では、テキスト ボックスにいる場合を除き、「カーソル」は実際には存在しないためです (コメントで質問するつもりでした)。 MouseOver イベントなどを利用できます。

例:

    foreach (HtmlElement element in this.webBrowser1.Document.Links)
    {
        element.MouseOver += (o, ex) =>
        {
            Console.WriteLine(ex.ToElement.GetAttribute("HREF"));
        };
    }

これにより、マウスが置かれている実際の URL が出力されます。

于 2009-01-29T17:13:31.587 に答える
0

この記事を見ることができます-C# winform で Web ブラウザー コンポーネントをホストする-これを実行するいくつかの方法について説明しています。または、これに直接移動する - Windows フォーム内で Web ページをホストする- 基本的に行う必要があるのは、IE の COM WebBrowser 内で DOM オブジェクトのクリックを処理することです。これを実現するには、C# コード内で Js イベントを処理します。

この種のカスタマイズは、新しいバージョンの .Net Framework の System.Windows.Forms.WebBrowser クラスではなく、AxSHDocVw.AxWebBrowser COM オブジェクトを使用して行う必要があることを覚えています。

これについてもっとデータを送ることができます。私はいくつかのプロジェクトを行いました。それを見つける時間をください ;)。それまでの間、これらのリンクを試してみてください。

に!

于 2009-01-29T17:13:46.987 に答える