2011-11-01 133 views
2

我有一個Windows窗體含有約15種不同的按鈕的應用程序,在單擊應顯示爲1或0。Windows窗體 - 點擊按鈕

現在的問題: 目前,我重複幾乎是完全相同的代碼每一個按鈕,並且工作正常,但是我想要做的是某種方法知道我當前正在按哪個按鈕,然後我想將該按鈕名稱作爲參數發送給包含該代碼的函數。

這是如何我做它現在:

private: System::Void button1Click(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { 
    //CODE HERE 
} 
    private: System::Void button2Click(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { 
    //SAME CODE HERE 
} 

而這一直持續到按鈕15 ...

我想怎麼辦:

private: System::Void justClicked(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { 
     //CODE HERE with justClicked as the buttons name. 
    } 
+0

'發件人'參數告訴你什麼按鈕被點擊。您可以對多個按鈕使用相同的buttonClick方法。 –

回答

1

sender參數儘管被定義爲一個對象,但它是對該對象的引用d事件。您只需將sender投射到Button或Control上即可獲取您需要的名稱或任何屬性。

您也只需要一個事件處理程序。所有按鈕的Click事件都應該分配給相同的事件處理函數。

+0

謝謝,正是我需要的。 – Lexipain

+0

太棒了。不要忘記接受答案:http://stackoverflow.com/faq –