前提・実現したいこと
vb.netで、以下の流れのプログラムを作成しています。
1.WebView2コントロールで指定したURLのページを表示する
2.1.で表示したページのリンクを押すと、新規ウィンドウで開く(新しいフォームにWebView2コントロールを配置するイメージ)
2.で、新規ウィンドウでリンク先を表示するとき、
WebView2.CoreWebView2.navigate([URL])
としているのですが、CoreWebView2がnothingとなり、表示することが出来ません。
どのように解決すればいいのか、ご教示いただきたいです。
該当のソースコード
VB.NET
1Public Class Form1 2 'WebViewコントロールを作成 3 Private WithEvents webView1 As New WebView2() 4 Dim webView2 As WebView2 5 6 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 7 8 webView1.Dock = DockStyle.Fill 9 webView1.Name = "webView1" 10 Me.WindowState = FormWindowState.Maximized 'フォームの最大化 11 12 ' コントロールとしてフォーム上に追加 13 Controls.Add(webView1) 14 15 '初期ページ表示 16 webView1.CoreWebView2.navigate([URL]) 17 18 '新規ウィンドウ表示イベントを設定 19 AddHandler webView1.CoreWebView2.NewWindowRequested, AddressOf webView_NewWindow 20 21 End Sub 22 23 Private Sub webView_NewWindow(sender As Object, e As CoreWebView2NewWindowRequestedEventArgs) 24 25 'Form2 26 Dim f2 As New Form2 'Form2クラスのインスタンス作成 27 f2.Show() 28 29 'WebView 30 webView2 = New WebView2 31 InitializeAsync2() 32 webView2.Dock = DockStyle.Fill 33 webView2.Name = "webView2" 34 webView2.Parent = f2 35 36 'txtを表示 37 Dim txt As String = CType(sender, CoreWebView2).Source 38 If webView2.CoreWebView2 IsNot Nothing Then 39 If Not txt = Nothing Then 40 webView2.CoreWebView2.Navigate(txt) 41 End If 42 Else 43 MsgBox("webView2.CoreWebView2 is nothing") '★ここに入ってしまう★ 44 End If 45 46 End Sub 47 48 Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load 49 50 InitializeAsync() 51 52 End Sub 53 54 Private Async Sub InitializeAsync() 55 56 Await webView1.EnsureCoreWebView2Async(Nothing) 57 58 End Sub 59 60 Private Async Sub InitializeAsync2() 61 62 Await webView2.EnsureCoreWebView2Async(Nothing) 63 64 End Sub 65End Class 66 67 68 69
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/05 00:29