メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

この資料の内容

概要

WebBrowser コントロールをホストする Visual Basic .NET アプリケーションは、スクリプトによって生成されるwindow.openの呼び出しをキャッチするNewWindow2イベントを処理できます。ただし、アプリケーションが web ブラウザー ホストに正しくウィンドウをサイズ変更できるように、 window.openの機能の引数に渡される、幅と高さの値を取得する方法はすぐにわかることはできません。この資料では、WebBrowser コントロールの高さと幅を取得する方法と、それに応じて、フォームのサイズを変更する方法について説明します。

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は、次のとおりです。

  • Microsoft Visual Studio .NET

  • Microsoft Internet Explorer 5.5 Service Pack 2 またはそれ以降

サンプルを作成します。

このセクションでは、Visual Basic .NET アプリケーションで WebBrowser コントロールをホストする方法、WebBrowser コントロールのNewWindow2イベントを処理する方法、およびWindowSetWidthとWindowSetHeightイベントを処理する方法について説明します。アプリケーションのサイズを変更します。

  1. 次のように、Visual Basic で新しい Windows アプリケーションを作成します。

    1. Visual Studio .NET を起動します。

    2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

    3. [プロジェクトの種類のVisual Basic プロジェクト] をクリックします。[テンプレート] には、 Windows アプリケーションをクリックします。

  2. ツールボックスで、[全般] をクリックを選択し、ツールボックスを右クリックし、[ツールボックスのカスタマイズ] をクリックします。

  3. [ COM コンポーネント] タブで、 Microsoft の Web ブラウザー ] チェック ボックスをオンし、し、[ OK] をクリックします。

  4. [ツールボックス] で、[エクスプ ローラー] ウィンドウでをダブルクリックします。

  5. ボタンコントロールおよびテキスト ボックスコントロールをフォームに追加します。

  6. [コード] ウィンドウで、ボタンのonClickイベントの実装を表示するのにはボタンをダブルクリックし、次のコードを追加します。

        Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub

    このコードでは、テキスト ボックスで指定した URL への参照を行うことができます。

  7. NewWindow2のハンドラー関数を記述する次のコードを追加します。

        Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _        Handles AxWebBrowser1.NewWindow2            Dim frmWB As Form1            frmWB = New Form1()            frmWB.AxWebBrowser1.RegisterAsBrowser = True            e.ppDisp = frmWB.AxWebBrowser1.Application            frmWB.Visible = True    End Sub
  8. WindowSetHeightのためのハンドラー関数を記述する次のコードを追加します。

        Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _        Handles AxWebBrowser1.WindowSetHeight            Dim heightDiff As Integer            heightDiff = Me.Height - Me.AxWebBrowser1.Height            Me.Height = heightDiff + e.height    End Sub
  9. WindowSetWidthのためのハンドラー関数を記述する次のコードを追加します。

        Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _        Handles AxWebBrowser1.WindowSetWidth            Dim widthDiff As Integer            widthDiff = Me.Width - Me.AxWebBrowser1.Width            Me.Width = widthDiff + e.width    End Sub

完全なコード サンプル

Public Class Form1    Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code "    'Omitted#End Region    Private Sub Button1_Click(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles Button1.Click            AxWebBrowser1.Navigate(TextBox1.Text)    End Sub    Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _        Handles AxWebBrowser1.NewWindow2            'MessageBox.Show(AxWebBrowser1.Height & ":" & AxWebBrowser1.Width)            'MessageBox.Show(doc.body.innerHTML)            Dim frmWB As Form1            frmWB = New Form1()            frmWB.AxWebBrowser1.RegisterAsBrowser = True            'frmWB.AxWebBrowser1.Navigate2("about:blank")            e.ppDisp = frmWB.AxWebBrowser1.Application            frmWB.Visible = True            'MessageBox.Show(frmWB.AxWebBrowser1.Height & ":" & frmWB.AxWebBrowser1.Width)    End Sub    Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _        Handles AxWebBrowser1.WindowSetHeight            'MessageBox.Show("In SetHeight" & Me.Height & ":" & e.height)            Dim heightDiff As Integer            heightDiff = Me.Height - Me.AxWebBrowser1.Height            Me.Height = heightDiff + e.height    End Sub    Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _        ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _        Handles AxWebBrowser1.WindowSetWidth            'MessageBox.Show("In SetWidth" & Me.Width & ":" & e.width)            Dim widthDiff As Integer            widthDiff = Me.Width - Me.AxWebBrowser1.Width            Me.Width = widthDiff + e.width    End SubEnd Class

それが動作することを確認します。

  1. アプリケーションをビルドします。

  2. メモ帳を開きます。Test.htm をという名前の新しいファイルを作成し、次のコードを追加します。

    <HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE></TITLE><script>function openWin(){var win;win = window.open("http://www.microsoft.com","blah","width=600, height=600");}</script></HEAD><BODY><button onClick=openWin()>Open Window</button></BODY></HTML>
  3. Test.htm を Web サーバー上に保存します。

  4. アプリケーションを実行します。

  5. Test.htm ページを参照し、ボタンをクリックします。アプリケーションの新しいインスタンスに、Microsoft の企業 Web サイトを開くことに注意してください。Window.openの呼び出しで渡された機能により、フォームをサイズ変更します。

関連情報

詳細については、マイクロソフト サポート技術情報の記事を表示するのには、以下の記事番号をクリックします。

311284する方法: Visual Basic .NET アプリケーションでドキュメント イベントを処理します。

259963 HOWTO: 幅を取得し、Visual C++ WebBrowser ホストの Window.open の内側に指定された高さメソッドと同様に、WebBrowser コントロールの詳細については、プロパティ、およびそれを公開するイベントに、次のマイクロソフト Web サイトを参照してください。

Visual Basic の開発者http://msdn2.microsoft.com/en-us/library/Aa752043.aspxの WebBrowser コントロールの場合: 参照Microsoft Internet Explorer の Web ベースのソリューションを開発する方法の詳細については、次のマイクロソフト Web サイトを参照してください。

http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×