C ++ .NET为2个按钮提供相同的点击功能?

时间:2010-07-30 21:05:58

标签: visual-c++

首先,是从名为.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'

1 个答案:

答案 0 :(得分:2)

  

如果我给他们两个相同的点击功能,我如何区分各个按钮?

发件人

  

如何实际访问发件人对象的Text属性?   将发送者转换为按钮类型并调用Text属性。

Button^ button = (Button^)sender ;
button->Text;

实际上,通过Text prop搜索按钮并不是一个好主意。你最好按姓名或身份搜索。