У меня есть программа, в которой я хочу щелкнуть правой кнопкой мыши по кнопке, чтобы сделать совершенно другой объем кода. У меня есть код, отображающий окно сообщения для примера, но в конечном итоге это будет просто вызов метода для каждого. Я покажу вам контекст, в котором мне это нужно. Любая помощь в том, как обнаружить щелчок правой кнопкой мыши, поможет. Вот фрагмент кода, который у меня есть:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ buttonName = safe_cast<Button^>(sender)->Name;
safe_cast<Button^>(sender)->Enabled = false;
if(/*Insert Code Here To Detect a right click*/)
MessageBox::Show("Right Click");
else
MessageBox::Show("Left Click");
MessageBox::Show(buttonName);
}
};
Вы можете использовать событие MouseDown и проверить, правильно ли оно
void button1_MouseDown( Object^ /*sender*/, System::Windows::Forms::MouseEventArgs^ e )
{
// Update the mouse path with the mouse information
Point mouseDownLocation = Point(e->X,e->Y);
String^ eventString = nullptr;
switch ( e->Button )
{
case ::MouseButtons::Left:
eventString = "L";
break;
case ::MouseButtons::Right:
eventString = "R";
break;
case ::MouseButtons::Middle:
eventString = "M";
break;
case ::MouseButtons::XButton1:
eventString = "X1";
break;
case ::MouseButtons::XButton2:
eventString = "X2";
break;
case ::MouseButtons::None:
default:
break;
}
//Process Here...
}
Других решений пока нет …