수색…
비고
다양한 방법으로 Windows Forms 응용 프로그램의 양식 및 컨트롤에 대한 도움말을 제공 할 수 있습니다. 팝업 도움말을 표시하거나 CHM 파일 또는 URL을 열 수 있습니다. 양식, 컨트롤 및 대화 상자에 대해 상황에 맞는 도움말을 표시 할 수 있습니다.
HelpProvider 구성 요소
HelpProvider
구성 요소를 설정하여 구성 요소에 대한 상황에 맞는 도움말을 제공 할 수 있습니다. 사용자가 F1 키 또는 양식의 도움말 버튼을 누르면이 방법으로 자동으로 다음을 수행 할 수 있습니다.
- 컨트롤에 대한 상황에 맞는 도움말 팝업 표시
- 컨텍스트 기반의 CHM 파일 열기 (컨텐트 테이블 표시, 키워드 또는 색인 표시, 항목 표시)
- 기본 브라우저를 사용하여 URL 탐색
도움말 클래스
코드에서 Help
클래스를 사용하여 다음과 같은 종류의 도움말을 제공 할 수 있습니다.
- 컨트롤에 대한 도움말 팝업 표시
- 컨텍스트 기반의 CHM 파일 열기 (컨텐트 테이블 표시, 키워드 또는 색인 표시, 항목 표시)
- 기본 브라우저를 사용하여 URL 탐색
HelpRequested 이벤트
당신은 처리 할 수 HelpRequested
의 이벤트를 Control
객체 또는 Form
사용자 F1 키를 눌러 또는 양식의 도움말 버튼을 클릭하면 사용자 지정 작업을 수행 할 수 있습니다.
양식 도움말 버튼
제목 표시 줄에 도움말 단추를 표시하도록 Form
을 설정할 수 있습니다. 이 방법은 사용자가 도움말 버튼을 클릭하면 커서가 ?
커서를 클릭하고 아무 지점이나 클릭하면 HelpProvider
를 사용하는 컨트롤과 관련된 상황에 맞는 도움말이 표시됩니다.
MessgeBox 및 CommonDialogs의 도움말 버튼
구성 요소의 도움말 버튼을 사용하여 MessageBox
, OpenFileDialog
, SaveDialog
및 ColorDialog
대한 도움말을 제공 할 수 있습니다.
툴팁 컴포넌트
사용자가 컨트롤을 가리킬 때 ToolTip
구성 요소를 사용하여 도움말 텍스트를 표시 할 수 있습니다. ToolTip
은 모든 컨트롤과 연결될 수 있습니다.
노트
HelpProvider
및 Help
클래스 사용 HTML 도움말 형식으로 컴파일 된 도움말 파일 (.chm) 또는 HTML 파일을 표시 할 수 있습니다. 컴파일 된 도움말 파일은 페이지의 목차, 색인, 검색 기능 및 키워드 링크를 제공합니다. 바로 가기는 컴파일 된 도움말 파일에서만 작동합니다. HTML 도움말 제작을 사용하여 HTML 도움말 1.x 파일을 생성 할 수 있습니다. HTML 도움말에 대한 자세한 내용은 "HTML 도움말 제작"및 Microsoft HTML 도움말의 다른 HTML 도움말 항목을 참조 하십시오 .
도움말 파일 표시
Help Class
는 HTML Help 1.0 엔진을 캡슐화합니다. 도움말 개체를 사용하여 컴파일 된 도움말 파일 (.chm) 또는 HTML 파일을 HTML 도움말 형식으로 표시 할 수 있습니다. 컴파일 된 도움말 파일은 페이지의 목차, 색인, 검색 및 키워드 링크를 제공합니다. 바로 가기는 컴파일 된 도움말 파일에서만 작동합니다. Microsft에서 HTML Help Workshop
이라는 무료 도구로 HTML Help 1.x 파일을 생성 할 수 있습니다.
두 번째 창에 컴파일 된 도움말 파일을 표시하는 쉬운 방법은 다음과 같습니다.
기음#
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
MessageBox에 대한 도움말 표시
다른 방법으로 메시지 상자에 대한 도움말을 제공 할 수 있습니다. Help
버튼을 표시하도록 MessageBox
를 구성 할 수 있습니다. 또한 사용자가 [도움말] 단추를 클릭하거나 F1 키 를 눌러 도움말을 요청하면 CHM 파일을 표시하거나 URL을 탐색하거나 사용자 지정 작업을 수행하는 방식으로 MessageBox
를 구성 할 수 있습니다. 다음은이 주제의 몇 가지 예입니다.
아래 모든 예제에서 MessageBox
는 다음과 같습니다.
CHM 파일 표시 및 키워드 (색인)로 이동
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
CHM 파일 표시 및 주제 탐색
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
CHM 파일 표시 및 목차에서 첫 번째 도움말 페이지 탐색
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
기본 브라우저를 열고 URL로 이동하십시오.
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
도움말 단추 또는 F1 키를 누를 때 사용자 정의 작업 수행
이 경우 MessageBox
parent의 HelpRequested
이벤트를 처리하고 사용자 지정 작업을 수행해야합니다.
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
그런 다음 MessageBox
with Help 단추를 표시 할 수 있습니다.
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
또는 도움말 버튼없이 표시 :
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
CommonDialogs에 대한 도움말 표시
OpenFileDialog
, SaveFileDialog
및 ColorDialog
대한 도움말을 제공 할 수 있습니다. 그렇게하려면 대화 상자의 ShowHelp
속성을 true
하고 대화 상자의 HelpRequest
이벤트를 처리하십시오.
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
노트
-
ShowHelp
를true
설정 한 경우에만 이벤트가 발생true
. -
Help
버튼을 클릭하여 이벤트를 발생시키고 F1 키를 사용하여 이벤트를 발생시키지 않습니다.
아래 이미지에서 Help 버튼이있는 OpenFileDialog
를 볼 수 있습니다 :
컨트롤 및 폼의 HelpRequested 이벤트 처리
사용자가 컨트롤에서 F1 을 누르거나 폼 ( ? )의 도움말 버튼을 클릭 한 다음 컨트롤을 클릭하면 HelpRequested
이벤트가 발생합니다.
이 이벤트를 처리하여 사용자 요청이 컨트롤 또는 양식에 도움이 될 때 사용자 지정 작업을 제공 할 수 있습니다.
HelpRequested
는 버블 업 메커니즘을 지원합니다. 귀하의 활성 컨트롤에 대한 화재와 이벤트를 처리하지 않는 경우 이벤트 인수의 Handled
속성을 true
설정하지 않으면 양식까지 상위 컨트롤 계층 구조까지 버블 링합니다.
예를 들어 아래처럼 폼의 HelpRequested
이벤트를 처리하면 F1 을 누르면 메시지 상자가 팝업되어 활성 컨트롤의 이름을 표시하지만 textBox1
경우 다른 메시지를 표시합니다.
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
var c = this.ActiveControl;
if(c!=null)
MessageBox.Show(c.Name);
}
private void textBox1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
hlpevent.Handled = true;
MessageBox.Show("Help request handled and will not bubble up");
}
URL로 이동하거나 Help
클래스를 사용하여 CHM 파일을 표시하는 것과 같은 다른 사용자 지정 작업을 수행 할 수 있습니다.
도움말 클래스를 사용하여 도움말보기
코드에서 Help
클래스를 사용하여 다음과 같은 종류의 도움말을 제공 할 수 있습니다.
- 컨트롤에 대한 도움말 팝업 표시
- 컨텍스트 기반의 CHM 파일 열기 (컨텐트 테이블 표시, 키워드 또는 색인 표시, 항목 표시)
- 기본 브라우저를 사용하여 URL 탐색
도움말 팝업 창 표시
Help.ShowPopup
을 사용하여 도움말 팝업 창을 표시 할 수 있습니다.
private void control_MouseClick(object sender, MouseEventArgs e)
{
var c = (Control)sender;
var help = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
if (c != null)
Help.ShowPopup(c, "Lorem ipsum dolor sit amet.", c.PointToScreen(e.Location));
}
마우스 포인터 위치에서 도움말 팝업을 보여줍니다 :
CHM 도움말 파일 표시
Help.ShowHelp
메소드의 다양한 오버로드를 사용하여 CHM 파일을 표시하고 키워드, 주제, 색인 또는 목차로 이동할 수 있습니다.
도움말 목차보기
Help.ShowHelp(this, "Help.chm");
특정 키워드 (색인)에 대한 도움말 표시
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
특정 주제에 대한 도움말 표시
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
URL 표시
ShowHelp
메서드를 사용하여 기본 브라우저에 모든 URL을 표시 할 수 있습니다.
Help.ShowHelp(this, "Http://example.com");
양식의 제목 표시 줄에 도움말 단추 표시
Form
의 제목 표시 줄에 도움말 단추를 표시 할 수 있습니다. 이렇게하려면 다음을 수행해야합니다.
- form의
HelpButton
속성을true
설정true
. -
MinimizeBox
및MaximizeBox
를false
설정하십시오.
그런 다음 도움말 버튼이 Form
제목 표시 줄에 나타납니다.
또한 Help 버튼을 클릭하면 커서가 ?
커서:
당신은 클릭하면 다음 Control
또는 Form
의 HelpRequested
이벤트가 발생 될 것입니다 그리고 당신은 설정이있는 경우도 HelpProvider
컨트롤에 대한 도움말을 사용하여 표시됩니다 HelpProvider
.
표준 양식 도움말 버튼처럼 작동하는 사용자 정의 도움말 버튼 만들기
당신이있는 경우 Form
과 MinimizeBox
및 MaximizeBox
로 설정 true
, 당신은 제목 표시 줄에 도움말 단추를 표시 할 수 없습니다 Form
하고 커서가 컨트롤을 클릭 할 수 있도록 변환하는 데 도움이 버튼을 클릭의 기능을 잃게됩니다 도움을 보여주십시오.
MenuStrip
에서 메뉴 항목을 표준 도움말 버튼처럼 사용할 수 있습니다. 이렇게하려면 MenuStrip
을 폼에 추가하고 ToolStripMenuItem
을 추가 한 다음 항목의 Click
이벤트를 처리합니다.
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_CONTEXTHELP = 0xF180;
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
private void helpToolStripMenuItem_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_SYSCOMMAND, SC_CONTEXTHELP, 0);
}
참고 : Button
사용하여 수행하려는 경우 button1.Capture = false;
메시지를 보내기 전에 그러나 ToolStripMenuItem
에는 필요하지 않습니다.
그런 다음 도움말 메뉴를 클릭하면 커서가 ?
커서를 클릭하면 표준 도움말 버튼을 클릭 할 때와 같이 작동합니다.
Form의 HelpButtonClicked 이벤트 처리하기
사용자가 클릭했을 때 당신은 감지 할 수있는 HelpButton
처리에 의한 형태의 제목 표시 줄에 HelpButtonClicked
. 이벤트 args의 Cancel
속성을 true
로 설정하여 이벤트가 계속되거나 취소되도록 할 수 있습니다.
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}