2011-11-01 5 views
2

Windows Forms 응용 프로그램에 HelpButton이 있습니다. 클릭하면 메시지 상자를 표시하기 만하면됩니다. 이 양식 커서가 그것에 물음표 "도움말"커서로 전환 ...Windows Forms HelpButton 커서 변경

private void Form1_HelpButtonClicked(object sender, EventArgs e) 
{ 
    MessageBox.Show("This is an awesome program", "Awesome Program"); 
} 

문제는, 사용자가 메시지 상자에서 닫을 때 잘 작동한다. 이것은 좋지 않다. 커서가 변경되지 않도록하려면 어떻게합니까? 메시지 상자 호출 후 this.Cursor = Cursors.Defaultthis.Cursor = Cursors.Arrow을 넣으려고했으나 효과가 없었습니다.

답변

7

이벤트 처리기 선언이 올바르지 않으므로 e 인수는 실제로 CancelEventArgs 유형입니다. 지금은 간단하다 :

private void Form1_HelpButtonClicked(object sender, CancelEventArgs e) { 
     MessageBox.Show("This is a more awesome program", "Awesome Program"); 
     e.Cancel = true; 
    } 
+0

나는이 질문을보기를 희망했다. WinForms 님, 고맙습니다. –

+0

그런데 어떻게 Visual Basic에서 IDE 내에서 이러한 선언을 자동 생성합니까? –

+1

속성 창에서 번개 모양 아이콘. 이벤트 이름을 두 번 클릭하십시오. –

0

HelpRequested 이벤트를 처리하고 이벤트 arg의 Handled 속성을 true로 설정하고 HelpButtonClicked 이벤트를 처리하지 않아도됩니다.

private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent) 
    { 
     MessageBox.Show("This is an awesome program", "Awesome Program"); 
     hlpevent.Handled = true; 
    } 
+0

아니오, 그게 내가 도움말 버튼을 클릭하면 HelpRequested'가 발생하지 않습니다 '때문에 원하는 게 아니에요, 당신이 양식에 다른 요소를 클릭 한 후 화재 (커서가 이미 변경된 후) –

+0

. 나는 그것이 위에 응답 된 것을 본다. – Kell

-3

Cursor.Current 정적 속성을 변경해보십시오.

+0

시도했지만, 이것도 작동하지 않았습니다. –