panel mit mouse bewegen



  • hi,

    ich habe ein panel in meiner form1 angelegt und in diesem verschiedene controls...

    nun will ich mit der maus dieses panel in der form bewegen

    ich habe schon folgendes hinbekommen mit dem mouseMove und und MouswDown event des panels:

    private: System::Void panel1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    
    			 if (e->Button == System::Windows::Forms::MouseButtons::Left)
    			 {
    
    				 System::Drawing::Point MousePos = System::Drawing::Point(e->Location);
    				 MousePos.Offset(MouseOffset->X, MouseOffset->Y);
    
    				 this->panel1->Location = MousePos;
    				 //this->panel1->Location = e->Location;
    			 }
    		 }
    Point ^MouseOffset;
    
    private: System::Void panel1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    			 MouseOffset->X = -e->X;
    			 MouseOffset->Y = -e->Y;
    		 }
    

    ich bekomme das panel bewegt aber leider nicht schnell genug, soll heißen die mause ist zu schnell und er kommt nicht hinterher mit dem änderen der location.
    und das es gelegentlich hinundher hüpft....

    hat jemand ne bessere idee zur realisierung? oder verbesserungs vorschläge?



  • private: System::Void panel1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    
    	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
    	     panel1->Left::set(e->X + panel1->Left);
    	     panel1->Top::set(e->Y + panel1->Top);
    
    	}
    }
    

    Vielleicht hilft dir das weiter 🙂



  • das klappt!

    das panel bleibt brav am mausezeiger kleben solange die mouse gedrückt ist.

    wenn ich die mouse allerdings loslasse hüpft das panel in die obere linke ecke der form

    edit:: okay mein fehler hatte noch etwas in dem mouseup event drinne stehen 🙂


Anmelden zum Antworten