본문 바로가기

C#

C# WebBrowserControl을 사용하는법

반응형

C# WebBrowserControl을 사용하는법

WebBrowserControl은 C# 언어를 사용하여 웹 브라우저 뷰를 만들 때 주로 사용되는 컨트롤입니다. 이를 사용하면 C# 애플리케이션에서 웹 브라우저를 통해 웹 페이지를 표시할 수 있습니다.

이 글에서는 C#에서 WebBrowserControl을 사용하는 방법에 대해 자세히 알아보겠습니다.

1. WebBrowserControl 추가하기

WebBrowserControl을 사용하기 위해서는 먼저 프로젝트에 이를 추가해야 합니다. 이를 위해서는 Visual Studio에서 프로젝트를 열고, 도구 상자에서 WebBrowserControl 컨트롤을 찾아서 폼에 드래그 앤 드롭하면 됩니다.

2. 네임스페이스 추가하기

WebBrowserControl을 사용하기 위해서는 네임스페이스를 추가해야 합니다. using System.Windows.Forms;을 추가합니다.

using System.Windows.Forms;

3. URL 지정하기

이제 WebBrowserControl을 로드할 URL을 지정해야 합니다. 이를 위해서는 WebBrowserControl.Navigate() 메서드를 사용합니다. 예를 들어, Google 홈페이지를 로드하려면 다음과 같이 하면 됩니다.

webBrowser1.Navigate("<https://www.google.com>");

4. 로드 완료 처리

만약 WebBrowserControl이 로드를 완료하면 알림을 받고 싶다면, 다음과 같이 처리할 수 있습니다.

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    MessageBox.Show("로드 완료!");
}

위 코드에서는 DocumentCompleted 이벤트를 사용하여 웹 페이지가 로드되면 "로드 완료!" 메시지를 표시합니다.

5. 웹 페이지 제어하기

WebBrowserControl을 사용하면 웹 페이지를 제어할 수도 있습니다. 예를 들어, 아래와 같이 웹 페이지의 버튼을 클릭하거나, 텍스트를 입력할 수 있습니다.

// 웹 페이지의 특정 요소를 클릭하는 예시
HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("button");
foreach (HtmlElement element in elements)
{
    if (element.InnerText == "Click Me")
    {
        element.InvokeMember("click");
    }
}

// 웹 페이지의 특정 폼에 텍스트를 입력하는 예시
HtmlElement input = webBrowser1.Document.GetElementById("txtInput");
if (input != null)
{
    input.InnerText = "Hello World";
}

6. 웹 페이지에서 데이터 가져오기

WebBrowserControl을 사용하면 웹 페이지에서 데이터를 가져올 수도 있습니다. 예를 들어, 아래와 같이 웹 페이지의 제목을 가져올 수 있습니다.

string pageTitle = webBrowser1.DocumentTitle;

또한, 아래와 같이 웹 페이지에서 특정 요소의 값을 가져올 수도 있습니다.

HtmlElement input = webBrowser1.Document.GetElementById("txtInput");
if (input != null)
{
    string inputText = input.GetAttribute("value");
}

7. 웹 페이지 이벤트 처리하기

WebBrowserControl은 다양한 이벤트를 제공합니다. 예를 들어, 웹 페이지에서 클릭 이벤트를 처리하려면 다음과 같이 합니다.

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    HtmlElementCollection links = webBrowser1.Document.Links;
    foreach (HtmlElement link in links)
    {
        link.Click += new HtmlElementEventHandler(link_Click);
    }
}

private void link_Click(object sender, HtmlElementEventArgs e)
{
    MessageBox.Show("링크 클릭!");
}

위 코드에서는 DocumentCompleted 이벤트를 사용하여 웹 페이지가 로드되면 모든 링크에 Click 이벤트를 추가합니다. 그리고 링크를 클릭하면 "링크 클릭!" 메시지를 표시합니다.

이제 C#에서 WebBrowserControl을 사용하는 방법에 대해 자세히 알아보았습니다.
이를 활용하여 다양한 웹 브라우저 뷰를 만들어 보세요.

반응형