VB.net (WinForms)에서의 Cefsharp의 기본적인 취급 방법에 대해서

소개



안녕하세요. 야한 것 「마른다.」입니다.
Qiita 첫 투고입니다.

졸작의 함 이것 전용 브라우저"Admiral's Desk"의 개발에 있어서 Cefsharp를 채용하려고 코딩하고 있었습니다만, 원래 VB.net에서의 자료가 너무(슬픈 만큼) 적었기 때문에 써 남기기로 합니다.

원래 Cefsharp란 무엇입니까?



Cefsharp는 Chromium의 .NET 용 래퍼와 같습니다.
그렇지만 Webbrowser 컨트롤의 완전 대체가 되는가 하면 「아니오」입니다만, 한정적인 용도라면 충분히 실용이 될 것 같습니다.

여기서 전제



Visual Studio Community 2017 버전 15.6.4
VB.net (.NET 4.6.2)에서 WinForms 사용
Cefsharp.WinForms 65.0.0

아래 준비



nuget으로 CefSharp.WinForms 설치



기본



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시(즉 윈도우가 닫힐 때)에 불리는 함수입니다. 그렇지 않으면 폭주합니다. (있어도 폭주할 때가 있습니다만)
후 정리는 확실히 실시합시다.

사이고에게



거친 해설이므로 보충 등 수시로 게재합니다.
코드의 실수나 버그등 있으면, 가르쳐 주실 수 있으면 매우 기쁩니다.

좋은 웹페이지 즐겨찾기