LoginSignup
5
6

More than 5 years have passed since last update.

VB.net(WinForms)でのCefsharpの基本的な扱い方について

Last updated at Posted at 2018-08-10

はじめに

こんにちは。@masteralice3104こと「ますたー。」です。
Qiita初投稿です。

拙作の艦これ専用ブラウザ"Admiral's Desk"の開発にあたってCefsharpを採用しようとコーディングしていたのですが、そもそもVB.netでの資料が余りに(悲しいほど)少なかったので書き残すことにします。

そもそもCefsharpとは

CefsharpとはChromiumの.NET用ラッパーみたいなものです。
でもWebbrowserコントロールの完全代替になるかというと「否」ですが、限定的な用途であれば十分実用となりそうです。

ここでの前提

Visual Studio Community 2017 version 15.6.4
VB.net(.NET 4.6.2)でかつWinFormsを使用
Cefsharp.WinForms 65.0.0

下準備

nugetでCefSharp.WinFormsをインストール

スクリーンショット (216).png

基本

form1.vb

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    InitializeComponent()

    Dim settings = New CefSharp.CefSettings
    CefSharp.Cef.Initialize(settings)

    Dim browser = New CefSharp.WinForms.ChromiumWebBrowser("http://www.google.co.jp")
    Controls.Add(browser)
    browser.Dock = DockStyle.Fill

End Sub

Private Sub Form1_Exit() Handles MyBase.Closed

        CefSharp.Cef.Shutdown()

End Sub

細かいところは省略したが特に問題はないはず。




Dim settings = New CefSharp.CefSettings
CefSharp.Cef.Initialize(settings)

ここで作ったsettingでCefsharp自体をセットするのですが、設定の仕方は後ほど説明する予定です。

Dim browser = New CefSharp.WinForms.ChromiumWebBrowser("http://www.google.co.jp")

Cefsharpコンポーネントによるブラウザが(裏で)起動します。
感覚としてはwebBrowserコントロールのwebBrowser1.Navigate("URL")みたいな感じでしょうか。
ポイントは、この時点では表示がなされていないことです。(当然ですね)

Controls.Add(browser)

ここでようやくChromiumWebBrowserコントロールとして追加されます。が、表示にバグが有るようで

browser.Dock = DockStyle.Fill

としないと表示してくれない模様です。

CefSharp.Cef.Shutdown()

そしてCef.Shutdown()はMyBase.Closed時(つまりウインドウが閉じられる時)に呼ばれる関数です。れがないと暴走します。(あっても暴走するときがありますが)
後片付けはしっかり行いましょう。

さいごに

ざっくりした解説なので補足等随時掲載します。
コードの間違いやバグなどあれば、教えていただけるととても嬉しいです。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6