Pregunta: | 65785 - MOVER UN LABEL EN C# |
Autor: | Joel Heredia |
Hola soy nuevo programando en c#, recientemente estoy haciendo una aplicación para realizar el movimiento de un label usando hilos (threads), creo el label y todo va bien hasta que creo el metodo de mover la imagen, para que se ejecute en el hilo, todo va bien entra correctamente a la función (lo revise paso a paso para ver si entraba y cambiaba los valores, cosa la cual hace), pero la imagen no se mueve, esperaba que alguien pudiese ayudarme, de antemano muchas gracias. |
Respuesta: | engell mejia |
si a lo que te refieres es a cambiar la posición del label en tiempo de ejecución prueba con lo siguiente:
label1.Location = new System.Drawing.Point(coordenada_X, coordenada_Y); si estas trabajando con hilos necesitas utilizar delegados para habilitar llamadas asincronas para cada propiedad del label para que este pueda ser accedido de manera segura desde el hilo. ejemplo: public void nueva_posicion(Control label1) { if (label1.InvokeRequired) { SetValueDelegate delegado = new SetValueDelegate(nueva_posicion); label1.Invoke(delegado, new object[] { label1 }); } else label1.Location = new System.Drawing.Point(coordenada_X, coordenada_Y); } ahora dentro de tu funcion ("la que ejecutas desde el nuevo hilo"), pon lo siguiente: nueva_posicion( label1 ); NOTA: declara las variables "coordenada_X" , "coordenada_Y" de forma global y modifica sus valores a los que tu desees antes de llamar a la función nueva_posicion( );, para q sean estos los que se tomen en cuenta a la hora de reubicar el label. Saludos... |