none
Ayudaa!!! RRS feed

  • Pregunta

  • hola tengo un proyecto escolar y el profesor me pide que haga una animación de un intercambio de datos, para no hechar tanto rollo tengo que hacer que un label se mueva y al chocar con un textbox el valor que esta en el label pasa al textbox, ya logre que el label se mueva pero lo que me falta es como hacer que al chocar con el textbox el valor de em label en movimiento entre en el textbox. Les agradecería mucho que me ayudaran. Pd: Estoy cursando el 2do semestre de ing. TIC'S.  C#
    • Editado Pokerhd1998 sábado, 3 de febrero de 2018 2:30
    sábado, 3 de febrero de 2018 2:29

Respuestas

  • Hola

    con las propiedades top, left vas comparando las ubicaciones de los controles, una vez que coincidan copia los valores 

    //ubicacionlabel = ?;
    //ubicaciontextbox =?;
    
    if(ubicacionlabel == ubicaciontextbox)
    {
    //Se copia el texto contenido a través de la propiedad Text:
    textbox1.Text = Label1.Text;
    Label1.Text = string.Empty; //por si deseas limpiar el contenido del control }

    Saludos


    Brayan De la Cruz
    Lima - Perú

    sábado, 3 de febrero de 2018 17:36
  • Todos los controles tienen una propiedad que se llama clientrectangle o bounds del tipo rectangle que te dice el top, left , ancho y largo.

    Solo tienes que comprbar donde muevas el label si su clientRectangle o bounds intersecciona con el del textbox y en ese caso paras la animación y cambias los contenidos de las propiedades Text.

    PAra saber si dos rectangle interseccionan exisste un extensor de rectangle que se llma Intersec.

    Y funciona asi:

    Label1.ClientRectangle.Intersec(TextBox1.ClientRectangle) == true <- uno se superpone con el otor si es false no.

    También lo puedes hacere sin usar el clientrectangle directamente usando las porpiedades top, left width y height de ambos controles. Tu mismo.


    sábado, 3 de febrero de 2018 12:16
  • Buenas,

    Como estas desarrollando? Winforms? WPF?

    Si ya tienes la parte de mover el label, supongo que sabrás cuando el label "choca" con el el textbox, supongo que mediante evaluar su posición, lo que puedes hacer, es cuando choque con el textbox

    if(/*Condicion de posicion*/)
    {
        txtBox.Text = lbl.Text;
        lbl.Text = "";
    }

    Si tienes dudas, comentanos más en profundidad tu caso, explica que tecnología usas, y si puedes, apóyate mostrando el código en el que mueves el label y choca.

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    sábado, 3 de febrero de 2018 12:15

Todas las respuestas

  • Buenas,

    Como estas desarrollando? Winforms? WPF?

    Si ya tienes la parte de mover el label, supongo que sabrás cuando el label "choca" con el el textbox, supongo que mediante evaluar su posición, lo que puedes hacer, es cuando choque con el textbox

    if(/*Condicion de posicion*/)
    {
        txtBox.Text = lbl.Text;
        lbl.Text = "";
    }

    Si tienes dudas, comentanos más en profundidad tu caso, explica que tecnología usas, y si puedes, apóyate mostrando el código en el que mueves el label y choca.

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    sábado, 3 de febrero de 2018 12:15
  • Todos los controles tienen una propiedad que se llama clientrectangle o bounds del tipo rectangle que te dice el top, left , ancho y largo.

    Solo tienes que comprbar donde muevas el label si su clientRectangle o bounds intersecciona con el del textbox y en ese caso paras la animación y cambias los contenidos de las propiedades Text.

    PAra saber si dos rectangle interseccionan exisste un extensor de rectangle que se llma Intersec.

    Y funciona asi:

    Label1.ClientRectangle.Intersec(TextBox1.ClientRectangle) == true <- uno se superpone con el otor si es false no.

    También lo puedes hacere sin usar el clientrectangle directamente usando las porpiedades top, left width y height de ambos controles. Tu mismo.


    sábado, 3 de febrero de 2018 12:16
  • Hola

    con las propiedades top, left vas comparando las ubicaciones de los controles, una vez que coincidan copia los valores 

    //ubicacionlabel = ?;
    //ubicaciontextbox =?;
    
    if(ubicacionlabel == ubicaciontextbox)
    {
    //Se copia el texto contenido a través de la propiedad Text:
    textbox1.Text = Label1.Text;
    Label1.Text = string.Empty; //por si deseas limpiar el contenido del control }

    Saludos


    Brayan De la Cruz
    Lima - Perú

    sábado, 3 de febrero de 2018 17:36