Frage

mit dieser Veranstaltung das Etikett nur verschwindet, wie soll ich tun?

    private void label4_MouseMove(object sender, MouseEventArgs e)
    {
        label4.Location = new Point(Cursor.Position.X, Cursor.Position.Y);
    }
War es hilfreich?

Lösung

Die Lage des label4 ist mit dem Behälter (Form oder Eltern-Steuerung) relativ, Cursorposition zu dem Bildschirm relativ kann.

Sie müssen die Lage einzustellen. Zum Beispiel, wenn der Behälter die Form sind, können Sie seine Position auf dem Bildschirm finden und durch die Position des Cursors relativ zum Bildschirm berechnen.

Dies ist nur eine Möglichkeit für die Sache, aber dies ist passiert viel:)

Andere Tipps

handle these three event ...
Control actcontrol;
 Point   preloc;
 void label1_Mousedown(object sender, MouseEventArgs e)
        {

            actcontrol = sender as Control;
            preloc = e.Location;
            Cursor = Cursors.Default;


        }
        void label1_MouseMove(object sender, MouseEventArgs e)
        {
            if (actcontrol == null || actcontrol != sender)
                return;
            var location = actcontrol.Location;
            location.Offset(e.Location.X - preloc.X, e.Location.Y - preloc.Y);            
            actcontrol.Location = location;

        }
        void label1_MouseUp(object sender, MouseEventArgs e)
        {
            actcontrol = null;
            Cursor = Cursors.Default;

        }

Verwenden Sie die PointToClient des Formulars () Funktion der Maus X / Y-Koordinaten in Punkte umzusetzen, die zu Ihrem Formular relativ sind, dass sie tun sollten.

Edit: Verwenden Sie die Maus-Event args Objekteigenschaften statt:

Label1.Location = New Point(e.X, e.Y)

PS verzeihen Sie das VB, keine C # auf diesem PC

Die Position eines Element relativ zu seinen Eltern. In diesem Fall wenn Sie die absolute Mausposition als Standort verwenden.

Sie müssen die Mausposition in das Koordinatensystem des übergeordneten Elements übersetzen.

Mit dem PointToClient Verfahren auf das übergeordnete Element des Labels.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top