2011-08-16 86 views
0

那麼如何開始。 我問你什麼時候做遊戲,例如你添加一個控件,當焦點不在窗體上時,如何讓窗體的關鍵事件運行,但是在某些控件上,當我調用this.Focus()或this時。選擇()它不會發生任何事情,但如果我使用空表單(沒有控件)它的作品(事件響應)。當我有例如2個按鈕,並調用button1.focus(),然後按一個鍵button1的事件處理程序響應(只有它)然後當我調用button2.Focus()它響應button2.How是焦點分佈通過控制? 我知道羊肉你必須單擊它們一次將焦點放在它們自動和文本框,但是當我單擊窗體它不會移動窗體上的焦點。C中的KeyPress,KeyDown和KeyUp事件的問題#

我幾乎沒有關鍵事件的經驗,請解釋我如何使用它們以及它們的功能如何理解。

PS:很抱歉的長期questin

+0

考慮拆分你的問題。這使得它更容易回答。 –

+0

我的一般情況是他們如何運作以及如何使用他們(事件) – Bosak

+0

是的,我知道。我的建議仍然存在,因爲它們是兩個不同的問題,只是觸及相同的概念。 =) –

回答

2

您可以設置Form.KeyPreview真有形式作出反應的關鍵事件。

+0

因此,當我將其設置爲true並且焦點位於按鈕或其他位置時,表單將調用其事件處理函數?如果焦點位於按鈕上,那麼按鈕也會調用其關鍵事件處理程序? – Bosak

+0

如果KeyPreview爲true,則表單首先對事件作出反應,但仍需要爲表單或類似事件實施KeyDown。 –

+0

所以,如果我實現了窗體的keyDown事件和keyPreview是真實的,我有一個按鈕,焦點在那個按鈕上,並且按鈕也有一個不同於窗體的keyDonw事件處理程序,那麼如果我先按下一個鍵,窗體的事件處理程序調用然後按鈕(或其他控件具有焦點並具有按鍵事件處理程序)? – Bosak