2012-05-22 34 views
2

如何以及在哪裏可以在窗體上註冊鼠標事件。當我雙擊窗體時,它會爲我生成Form_Load事件,我可以在其中添加代碼。然而,當我添加類似在窗體上註冊MouseDown和MouseMove

private void Form1_MouseDown(object sender, MouseEventArgs e{ 

Console.WriteLine("mouse down") 

} 

但是,當我在窗體上做了mousedown事件我沒有得到任何東西在控制檯上。我知道有什麼地方沒有註冊事件到表單或類似的東西。有任何想法嗎?

感謝,

回答

3

在設計視圖中,選擇表格,然後在屬性窗口中,單擊小閃電(事件)。

在這裏您可以選擇爲哪個事件調用哪個委託方法。如果您尚未創建該方法,只需雙擊事件旁邊的空白處,它就會爲您生成代碼。

0

通過你的解釋,似乎你已經通過設計器正確註冊了事件...如果你仍然沒有看到控制檯上的字符串嘗試System.Diagnostics.Debug.WriteLine(也許你看錯了窗口)

1

如果您使用的是VS.net,那麼您應該在屬性面板中找到所有事件。只需選擇你想要的。

如果你想語法註冊事件,則代碼會看起來像:

Form1.Click += new MouseEventHandler(Form1_MouseDown); 

以註銷它的

Form1.Click -= new MouseEventHandler(Form1_MouseDown); 
0

隨着的WinForms,你會希望通過將其添加Visual Studio中的設計視圖。

在設計視圖中,選擇您的表單。然後,單擊屬性面板中的「事件」按鈕(看起來像閃電),然後在適當的事件下鍵入函數名稱。您也可以單擊此處的事件以在代碼隱藏中自動生成新功能。

正如您所注意到的,雙擊表單將自動在代碼隱藏中生成某個函數。對於表單,它是Load,但對於其他的事情,它可能是MouseDown或其他事件。

1

事件需要通過設計器或代碼「連線」。您可以通過雙擊在屬性窗口中的事件連接起來從Visual Studio事件:

enter image description here

其中在自動生成的.designer文件生成code like the following

theForm.MouseDown += new MouseEventHandler(Form1_MouseDown); 

你也可以使用上面的代碼手動連接方法中的事件。

相關問題