Abfrage Maus in oberer Fensterleiste ?
-
Hallo,
ich habe folgendes Problem. Ich möchte ein Contextmenu anzeigen, wenn die Maus den Clientbereich verlässt und in die obere Fensterleiste eintritt. Ich habe das bisher so gelöst:private: System::Void Form1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { if(e->Y<=0) contextMenuStrip1->Show(this,e->X,1);
Das funktioniert aber nur, wenn ich die Maus sehr langsam bewege. Bei schnellen Bewegungen hilft die Abfrage nicht und das Contextmenu erscheint nicht.
Vielleicht kennt jemand da eine bessere Lösung
-
OK, Thema hat sich erledigt. Mir ist selber noch was eingefallen.
private: System::Void timer2_Tick(System::Object^ sender, System::EventArgs^ e) { Point mp,mpt; mp=System::Windows::Forms::Cursor::Position::get(); mpt=this->PointToClient(mp); if(mpt.Y<=0 && mpt.X>0 && mpt.X<this->Width) //Bereich abfragen contextMenuStrip1->Show(this,mpt.X,0); }
Mal wieder im guten alten Timer laufen lassen!
Ist zwar auch nicht die eleganteste Lösung, aber ich erhalte wenigsten negative Werte, wenn ich den Clientbereich verlasse.