2011-11-01 104 views
2

我在Windows窗體應用程序上有一個HelpButton。點擊時,我只想讓它顯示一個消息框。這是工作的罰款...Windows窗體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

順便說一下,如何在IDE中自動生成這些聲明,一個Visual Basic? –

+1

屬性窗口中的閃電圖標。雙擊事件名稱。 –

0

您想要處理HelpRequested事件並將事件參數的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

我試過了,但是這也沒有奏效。 –