Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

こんにちは。@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時(つまりウインドウが閉じられる時)に呼ばれる関数です。れがないと暴走します。(あっても暴走するときがありますが)
後片付けはしっかり行いましょう。

さいごに

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした