반응형
WebBrowser 컨트롤을 이용해서 웹브라우저를 만드는 코드입니다.
1. 프로젝트를 생성합니다.
- Windows Forms 앱(.NET Framework)
2. 폼을 디자인합니다.
- 메뉴 및 도구 모음 - ToolStrip
- WebBrowser -- Internet Explorer를 지원하는 컨트롤입니다.
ToolsStrip에는 TextBox 1개, 버튼 5개를 아래와 같이 배치합니다.
버튼에 사용할 이미지는 아래 링크에서 다운받아서 사용할 수 있습니다.
(강의용) 이미지(image), 아이콘(icon) 몇 가지 (coding-abc.kr)
홈 버튼은 "네이버"로 설정했습니다.
각 컨트롤의 이름은 소스 코드를 참고해서 작성하거나, 소스를 수정해서 오류가 없도록 합니다.
using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.Data;
//using System.Drawing;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
namespace Webbrower_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.ScriptErrorsSuppressed = true;
this.webBrowser1.CanGoBackChanged += new System.EventHandler(this.webBrowser1_CanGoBackChanged);
this.webBrowser1.CanGoForwardChanged += new System.EventHandler(this.webBrowser1_CanGoForwardChanged);
}
private void txtAddr_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Navigate(txtAddr.Text);
}
}
private void Navigate(String address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://") && !address.StartsWith("https://"))
{
address = "http://" + address;
}
try {
webBrowser1.Navigate(new Uri(address));
}
catch (System.UriFormatException) {
return;
}
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
txtAddr.Text = webBrowser1.Url.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
txtAddr.Text = "naver.com";
Navigate(txtAddr.Text);
}
private void btnGoBack_Click(object sender, EventArgs e)
{
// Navigates webBrowser1 to the previous page in the history.
webBrowser1.GoBack();
}
private void btnGoForward_Click(object sender, EventArgs e)
{
// Navigates webBrowser1 to the next page in history.
webBrowser1.GoForward();
}
// Disables the Back button at the beginning of the navigation history.
private void webBrowser1_CanGoBackChanged(object sender, EventArgs e)
{
btnGoBack.Enabled = webBrowser1.CanGoBack;
}
// Disables the Forward button at the end of navigation history.
private void webBrowser1_CanGoForwardChanged(object sender, EventArgs e)
{
btnGoForward.Enabled = webBrowser1.CanGoForward;
}
// Reloads the current page.
private void btnRefresh_Click(object sender, EventArgs e)
{
// Skip refresh if about:blank is loaded to avoid removing
// content specified by the DocumentText property.
if (!webBrowser1.Url.Equals("about:blank"))
{
webBrowser1.Refresh();
}
}
// Navigates webBrowser1 to the home page of the current user.
private void btnGoHome_Click(object sender, EventArgs e)
{
//webBrowser1.GoHome();
txtAddr.Text = "naver.com";
Navigate(txtAddr.Text);
}
// Halts the current navigation and any sounds or animations on the page.
private void btnStop_Click(object sender, EventArgs e)
{
webBrowser1.Stop();
}
}
}
실행된 결과 화면입니다.
반응형
'C#' 카테고리의 다른 글
(C#) 인쇄: 인쇄 미리보기 - PrintPreviewDialog ... (0) | 2023.04.24 |
---|---|
(C#) Linq, 구조체(struct), List<T> 응용: 나이 순으로 정렬하기 (0) | 2023.04.24 |
(C#) 웹 크롤링: 웹사이트 긁어오기 (0) | 2023.04.23 |
(C#) 네트워크 프로그램, 1:1 채팅 프로그램 (0) | 2023.04.23 |
(C#) listView 컨트롤 자세히 보기(View.Details) 모드 (0) | 2023.04.23 |