2016-04-14 21 views
0

Angenommen, ich hatte ein Steuerelement wie ein Picture Box auf meinem Windows Form und ich wollte, dass der Benutzer es wie eine Leinwand frei um das Panel ziehen kann, in jede gewünschte Position. Was wäre der beste Weg, dies zu tun?Wie man ein Steuerelement um ein Panel ziehen kann?

Danach möchte ich in der Lage sein, den Ort des Bildes auf dem Panel abzurufen. Offensichtlich würde ich das MouseDown-Ereignis benötigen, und meine erste Idee wäre, die Position des Steuerelements gleich der Position des Cursors zu setzen, aber dieses Glitchy und nicht glatt.

+1

Probieren Sie http://stackoverflow.com/questions/3868941/how-to-allow-user-to-drag-a-dynamically-created-control-at-the-location-of-his-c aus – drew

Antwort

-1
  1. Neuen Thread starten

    Thread thr = new Thread(() => 
    { 
        while(true) 
        { 
         Thread.Sleep(10) // < Limit CPU usage 
         if(mouseDownBool == true) 
         { 
          icontrol.Location = new Point(Cursor.Position.X, Cursor.Position.Y); 
         } 
        } 
    }); 
    thr.Start(); 
    
  2. Wenn mouseDown- Update mouseDownBool auf true

  3. Wenn mousUp Update mouseDownBool auf false

Sie können auch für eine bessere Wirkung Offsetzumischung .

0

Dieser Beitrag könnte auch HERE ... und um die Ausgabe anzuzeigen, einfach ein Etikett oder eine Textbox hinzuzufügen und zeigt die coordinates- so etwas helfen: von

textbox1.Text = pictureBox1.Location.ToString(); 

oder die Koordinaten nehmen:

pictureBox.Location (was ein Punkt ist) -oder-
pictureBox.Location.X // pictureBox.Location.Y (die ganze Zahlen sind)

Verwandte Themen