2011-01-26 3 views
1

안녕하세요, 그래서, 기본적으로 C 윈도우 창에서 메뉴 막대에서 '도움말보기'를 클릭하면 도움말 창에서 열려면 내 .chm 파일을 가져 오려고합니다. 어떻게해야합니까? .chm이 프로젝트 디렉토리에 있어야합니까? helpProvider 구성 요소를 사용하여 .chm 파일에 네임 스페이스를 설정하려고 시도했지만 F1을 누르면 앱이 실행되지 않고 메뉴 막대를 가져 오는 방법을 찾지 못했습니다. 그것을 표시합니다.메뉴에서 chm을 표시

감사합니다. dave k.

답변

9

HelpProvider이 여기에옵니다. Help 클래스를 사용하십시오. 우선, .chm 파일을 EXE 파일과 같은 디렉토리에 저장하는 것이 좋습니다. 프로젝트> 기존 항목 추가> .chm 파일을 선택하여 프로젝트에 추가하십시오. 솔루션 탐색기 윈도우에서 속성 윈도우를 선택하고, 속성 창에서 Build Action = Content, Copy to Output Directory = 복사하십시오. 양식에 대한

샘플 코드 :

using System.IO; 
... 

    private void showMyHelp() { 
     string path = Path.GetDirectoryName(Application.ExecutablePath); 
     path = "file://" + Path.Combine(path, "example.chm"); 
     Help.ShowHelp(this, path); 
    } 
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { 
     if (keyData == Keys.F1) { 
      showMyHelp(); 
      return true; 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    } 
    private void HelpButton_Click(object sender, EventArgs e) { 
     showMyHelp(); 
    } 
+1

나는 꼭 필요한 것을 나에게 주었다. 당신의 대답은 매우 명확하고 간결했습니다! 모두가 당신처럼 질문에 대답하기를 바랍니다. 당신에게 더 많은 것을 줄 수 있기를 바랄뿐입니다. "이것은 유용합니다"감사합니다! –

+0

'Process.Start (Application.StartupPath + "\\ help.chm");와 같은 어떤 것이 아니라 더 간단하게 트릭을 ...? 'Help.ShowHelp' 및/또는 프로젝트에 추가하는 것이 '특별한'일을합니까? –

+0

글쎄, 공식 도움말 API를 사용하고 처음 표시되는 내용을 제어 할 수 있습니다. Microsoft가 다르게 도움말을 표시하기로 결정하면 여전히 작동합니다. –

0

Process.Start를 (Application.StartupPath + "\ help.chm");

관련 문제