수색…


비고

다양한 방법으로 Windows Forms 응용 프로그램의 양식 및 컨트롤에 대한 도움말을 제공 할 수 있습니다. 팝업 도움말을 표시하거나 CHM 파일 또는 URL을 열 수 있습니다. 양식, 컨트롤 및 대화 상자에 대해 상황에 맞는 도움말을 표시 할 수 있습니다.

HelpProvider 구성 요소

HelpProvider 구성 요소를 설정하여 구성 요소에 대한 상황에 맞는 도움말을 제공 할 수 있습니다. 사용자가 F1 키 또는 양식의 도움말 버튼을 누르면이 방법으로 자동으로 다음을 수행 할 수 있습니다.

  • 컨트롤에 대한 상황에 맞는 도움말 팝업 표시
  • 컨텍스트 기반의 CHM 파일 열기 (컨텐트 테이블 표시, 키워드 또는 색인 표시, 항목 표시)
  • 기본 브라우저를 사용하여 URL 탐색

도움말 클래스

코드에서 Help 클래스를 사용하여 다음과 같은 종류의 도움말을 제공 할 수 있습니다.

  • 컨트롤에 대한 도움말 팝업 표시
  • 컨텍스트 기반의 CHM 파일 열기 (컨텐트 테이블 표시, 키워드 또는 색인 표시, 항목 표시)
  • 기본 브라우저를 사용하여 URL 탐색

HelpRequested 이벤트

당신은 처리 할 수 HelpRequested 의 이벤트를 Control 객체 또는 Form 사용자 F1 키를 눌러 또는 양식의 도움말 버튼을 클릭하면 사용자 지정 작업을 수행 할 수 있습니다.

양식 도움말 버튼

제목 표시 줄에 도움말 단추를 표시하도록 Form 을 설정할 수 있습니다. 이 방법은 사용자가 도움말 버튼을 클릭하면 커서가 ? 커서를 클릭하고 아무 지점이나 클릭하면 HelpProvider 를 사용하는 컨트롤과 관련된 상황에 맞는 도움말이 표시됩니다.

MessgeBox 및 CommonDialogs의 도움말 버튼

구성 요소의 도움말 버튼을 사용하여 MessageBox , OpenFileDialog , SaveDialogColorDialog 대한 도움말을 제공 할 수 있습니다.

툴팁 컴포넌트

사용자가 컨트롤을 가리킬 때 ToolTip 구성 요소를 사용하여 도움말 텍스트를 표시 할 수 있습니다. ToolTip 은 모든 컨트롤과 연결될 수 있습니다.

노트

HelpProviderHelp 클래스 사용 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 는 다음과 같습니다.

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 , SaveFileDialogColorDialog 대한 도움말을 제공 할 수 있습니다. 그렇게하려면 대화 상자의 ShowHelp 속성을 true 하고 대화 상자의 HelpRequest 이벤트를 처리하십시오.

void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
    //Perform custom action
    Help.ShowHelp(this, "Http://example.com");
}

노트

  • ShowHelptrue 설정 한 경우에만 이벤트가 발생 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 의 제목 표시 줄에 도움말 단추를 표시 할 수 있습니다. 이렇게하려면 다음을 수행해야합니다.

  1. form의 HelpButton 속성을 true 설정 true .
  2. MinimizeBoxMaximizeBoxfalse 설정하십시오.

그런 다음 도움말 버튼이 Form 제목 표시 줄에 나타납니다.

여기에 이미지 설명을 입력하십시오.

또한 Help 버튼을 클릭하면 커서가 ? 커서:

여기에 이미지 설명을 입력하십시오.

당신은 클릭하면 다음 Control 또는 FormHelpRequested 이벤트가 발생 될 것입니다 그리고 당신은 설정이있는 경우도 HelpProvider 컨트롤에 대한 도움말을 사용하여 표시됩니다 HelpProvider .

표준 양식 도움말 버튼처럼 작동하는 사용자 정의 도움말 버튼 만들기

당신이있는 경우 FormMinimizeBoxMaximizeBox 로 설정 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");
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow