C ++ .NET Дайте 2 кнопкам одинаковую функцию щелчка? - PullRequest
0 голосов
/ 31 июля 2010

Прежде всего, создание приложения Windows Form из раздела CLR в новом окне проекта с именем .NET или что-то еще? Я просто хочу знать, чтобы я мог искать вещи на нем лучше.

Как отличить отдельные кнопки, если я дал им одну и ту же функцию щелчка?

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, но как мне на самом деле получить доступ к свойству Text объекта отправителя?

Edit: Может быть, я делаю это неправильно, но я добавил

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 Ответ

2 голосов
/ 31 июля 2010

Как отличить отдельные кнопки, если я дал им одну и ту же функцию щелчка?

по отправителю

как я могу получить доступ кТекстовое свойство объекта отправителя?преобразуйте отправителя в тип Button и вызовите свойство Text.

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

на самом деле, поиск кнопок по Text prop не рекомендуется.лучше поиск по имени или идентификатору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...