Pregunta

usando este evento, la etiqueta simplemente desaparece, ¿cómo debo hacer esto?

    private void label4_MouseMove(object sender, MouseEventArgs e)
    {
        label4.Location = new Point(Cursor.Position.X, Cursor.Position.Y);
    }
¿Fue útil?

Solución

La ubicación de label4 es relativa al contenedor ( Form o control de los padres), la posición del cursor puede ser relativa a la pantalla.

Necesitas ajustar la ubicación. Por ejemplo, si el contenedor es el Formulario , puede encontrar su ubicación en la pantalla y calcular con ella la ubicación del cursor en relación con la pantalla.

Esta es solo una posibilidad para la causa, pero esta pasa mucho :)

Otros consejos

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;

        }

Use la función PointToClient () del formulario para traducir las coordenadas X / Y del mouse en puntos relativos a su formulario, que deberían hacerlo.

Editar: use las propiedades del objeto args del evento del ratón en su lugar:

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

PS perdón por el VB, no C # en esta PC

La ubicación de un elemento es relativa a su padre. En este caso, aunque esté utilizando la posición absoluta del mouse como su ubicación.

Tendrá que traducir la posición del mouse al sistema de coordenadas del elemento padre.

Use PointToClient método en el elemento padre de la etiqueta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top