728x90
반응형
728x170
■ 크로미엄 브라우저를 사용하는 방법을 보여준다.
▶ MainForm.cs
using System;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 크로미엄 브라우저
/// </summary>
private ChromiumWebBrowser browser;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
#region URL 텍스트 박스를 설정한다.
this.urlTextBox.Text = "https://icodebroker.tistory.com/category";
#endregion
#region 크로미엄 브라우저를 설정한다.
CefSettings setting = new CefSettings();
Cef.Initialize(setting);
browser = new ChromiumWebBrowser(this.urlTextBox.Text);
browser.Dock = DockStyle.Fill;
this.contentPanel.Controls.Add(browser);
#endregion
#region 이벤트를 설정한다.
FormClosing += Form_FormClosing;
this.backButton.Click += backButton_Click;
this.forwardButton.Click += forwardButton_Click;
this.refreshButton.Click += refreshButton_Click;
this.goButton.Click += goButton_Click;
this.browser.AddressChanged += browser_AddressChanged;
this.browser.TitleChanged += browser_TitleChanged;
#endregion
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 폼을 닫을 경우 처리하기 - Form_FormClosing(sender, e)
/// <summary>
/// 폼을 닫을 경우 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
Cef.Shutdown();
}
#endregion
#region 뒤로 가기 버튼 클릭시 처리하기 - backButton_Click(sender, e)
/// <summary>
/// 뒤로 가기 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void backButton_Click(object sender, EventArgs e)
{
if(this.browser.CanGoBack)
{
this.browser.Back();
}
}
#endregion
#region 앞으로 가기 버튼 클릭시 처리하기 - forwardButton_Click(sender, e)
/// <summary>
/// 앞으로 가기 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void forwardButton_Click(object sender, EventArgs e)
{
if(this.browser.CanGoForward)
{
this.browser.Forward();
}
}
#endregion
#region 갱신 버튼 클릭시 처리하기 - refreshButton_Click(sender, e)
/// <summary>
/// 갱신 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void refreshButton_Click(object sender, EventArgs e)
{
this.browser.Refresh();
}
#endregion
#region 이동 버튼 클릭시 처리하기 - goButton_Click(sender, e)
/// <summary>
/// 이동 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void goButton_Click(object sender, EventArgs e)
{
this.browser.Load(this.urlTextBox.Text);
}
#endregion
#region 브라우저 주소 변경시 처리하기 - browser_AddressChanged(sender, e)
/// <summary>
/// 브라우저 주소 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void browser_AddressChanged(object sender, AddressChangedEventArgs e)
{
Invoke(new MethodInvoker(() => { this.urlTextBox.Text = e.Address; } ));
}
#endregion
#region 브라우저 제목 변경시 처리하기 - browser_TitleChanged(sender, e)
/// <summary>
/// 브라우저 제목 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void browser_TitleChanged(object sender, TitleChangedEventArgs e)
{
Invoke(new MethodInvoker(() => { Text = "크로미엄 브라우저 사용하기 : " + e.Title; } ));
}
#endregion
}
}
※ 플랫폼 대상을 x86 또는 x64로 배포해야 한다.
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] Label 클래스 : 구분선 그리기 (0) | 2020.02.29 |
---|---|
[C#/WINFORM] Size 구조체 : 축소/확대하기 (0) | 2020.02.29 |
[C#/WINFORM] PrinterSettings 클래스 : InstalledPrinters 정적 속성을 사용해 프린터 존재 여부 구하기 (0) | 2020.02.29 |
[C#/WINFORM] Application 클래스 : OpenForms 정적 속성을 사용해 폼 오픈 여부 구하기 (0) | 2020.02.29 |
[C#/WINFORM] ColorTranslator 클래스 : FromHtml 정적 메소드를 사용해 16진수 색상 코드에서 색상 구하기 (0) | 2020.02.28 |
[C#/WINFORM] Form 클래스 : CreateParams 속성을 사용해 포커스 설정 방지하기 (0) | 2020.02.12 |
[C#/WINFORM] 멀티 원격 데스크톱 프로토콜 클라이언트(Remote Desktop Protocol Client) 사용하기 (0) | 2020.02.10 |
[C#/WINFORM] GIF 에디터 사용하기 (0) | 2020.01.28 |
[C#/WINFORM] Control 클래스 : MousePosition 정적 속성을 사용해 마우스 위치 색상 구하기 (0) | 2020.01.26 |
[C#/WINFORM] Cursor 클래스 : Clip 정적 속성을 사용해 마우스 이동 영역 제한하기 (0) | 2020.01.13 |
댓글을 달아 주세요