首先,是从名为.NET的新项目窗口中的CLR部分制作Windows窗体应用程序还是其他什么?我只是想知道,所以我可以更好地搜索它。
如果我给他们两个相同的点击功能,我如何区分各个按钮?
this->button1->Click += gcnew System::EventHandler(this, &test::button1_Click);
this->button2->Click += gcnew System::EventHandler(this, &test::button1_Click);
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
MessageBox::Show (Convert::ToString (sender));
}
};
这显示了System.Windows.Forms.Button,Text:button1或button2
我想到的最快的方法是使用Text进行if语句但是如何实际访问sender对象的Text属性?
编辑: 也许我做错了但是我添加了
Button button = sender as Button
在MessageBox行的正上方,我得到了
System::Windows::Forms::Button' : class does not have a copy-constructor
syntax error : missing ';' before identifier 'as'
error C2065: 'as' : undeclared identifier
syntax error : missing ';' before identifier 'Button'
System::Windows::Forms::Button' : illegal use of this type as an expression
see declaration of 'System::Windows::Forms::Button'
答案 0 :(得分:2)
如果我给他们两个相同的点击功能,我如何区分各个按钮?
发件人
如何实际访问发件人对象的Text属性? 将发送者转换为按钮类型并调用Text属性。
Button^ button = (Button^)sender ;
button->Text;
实际上,通过Text prop搜索按钮并不是一个好主意。你最好按姓名或身份搜索。