我有一个Windows窗体应用程序,其中包含大约15个不同的按钮,这些按钮的点击应显示为1或0.
现在问题: 目前我正在为每个按钮重复几乎完全相同的代码并且工作正常,但我想要做的是一些方法知道我正在按哪个按钮然后我想发送那个按钮名称为包含代码的函数的参数。
这就是我现在正在做的事情:
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 :(得分:1)
sender
参数虽然被定义为对象,但却是对导致事件的对象的引用。您所要做的就是将sender
转换为Button或Control,以获取您需要的名称或任何属性。
您还需要一个事件处理程序。应将所有按钮的Click事件分配给相同的事件处理函数。