본문 바로가기
개발언어/C#.NET

c# RichTextBox 의 Url 링크를 클릭했을 때 웹브라우져로 띄우기 RichTextBox rtfChat_LinkClicked 이벤트

by 엔돌슨 2011. 4. 8.
반응형

C# 코드에서 RichTextBox 컨트롤의 Url 링크를 IE로 띄우려면


xmpp프로토콜의 메신져 프로그램을 개발중이다. RichTextBox 대화창에 보여지는 Url 링크를 클릭시 IE로 연결해주어야 한다. RichTextBox 컨트롤의 경우 이벤트에 보면 LinkClicked 이벤트를 지정해 줄 수 있다. 프로세스를 하나 정해서 IExplore.exe (익스플로우)로 연결해주면 대화창의 링크를 클릭시 익스플로우가 뜨게 된다. 간단하지만 컨트롤을 사용할 줄 모르면 헤메가 된다. ㅜㅜ


C# How can I make a hyperlink work in a RichTextBox?


RichTextBox class allows you to customize its behavior when user clicks the hyperlink. Add an event handler for the RichTextBox.LinkClicked event


// 프로세스를 하나 지정합니다.
Process p = new Process();

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
   p = Process.Start("IExplore.exe", e.LinkText);
}


이렇게 대화창에 RichTextBox는 링크로 기본적으로 보여는 주지만 클릭시 이벤트 처리가 되어 있지 않습니다. 클릭이벤트 처리를 해주면 IE로 뜨게 할 수 있습니다.

그리고 프로세스를 닫아주어야 합니다.
public void StopWebProcess()
{
            p.Kill();
}

문제는 언제 익스플로우를 닫아 주어야 할까요? 모르겠네요. 체팅하다 띄운 익스플로우가 닫힐때 닫아주어야 할텐데 그전에 체팅창이 닫히면 프로세스는 놀고 있을거 같구 이런게 어렵네요.


참고사이트 
http://stackoverflow.com/questions/435607/c-how-can-i-make-a-hyperlink-work-in-a-richtextbox
http://msdn.microsoft.com/ko-kr/library/aa984362%28v=vs.71%29.aspx