none
Al dar clic en un Botón llevar información a un cuadro de texto RRS feed

  • Pregunta

  • Buenas noches estoy desarrollando una aplicación que permite dibujar con la letra X en una matriz 5*5 creada con cuadros de textos, el problema es que no puedo llenar la matriz de una vez sino cada vez que le de clic al botón por ejemplo "cruz" el me vaya colocando en los cuadros de texto una x hasta que complete la cruz. ejemplo:

    txt3.text = "X";

    txt8.text = "X";

    tx...

    Al momento de copilar el código hace aparecer en dichos cuadros las letras X hasta hacer la figura, pero el punto es que quiero que cada vez que de clic a el botón me llene cuadro de texto por cuadro hasta completarla.

    Muchas gracias.

    viernes, 4 de agosto de 2017 6:38

Respuestas

  • Buenas no se si abre entendido bien la problemática pero según lo que entendí es que tiene una pantalla como esta, donde tienes un texbox donde indicas por ejemplo dibujar una "x" en unos labels que tienes y lo que quieres es que cada vez que presiones el botón empiece a agregar una letra o numero desde la primera posicion

    prueba lo siguiente quizás no sea la mejor forma pero cumple según lo que entendi  crea una variable que aumente cada vez que presiones el botón

     private int contador = 0;

    private void button2_Click(object sender, EventArgs e)
            {
               switch (textBox1.Text)
                {
                    case "x":
                        if(contador==0)
                        label1.Text = "x";
                        else if (contador == 1)
                        label7.Text = "x";
                        else if (contador == 2)
                            label13.Text = "x";
                        else if (contador == 3)
                            label19.Text = "x";
                        else if(contador == 4)
                            label25.Text = "x";
                        else if (contador == 5)
                            label5.Text = "x";
                        else if (contador == 6)
                            label9.Text = "x";
                        //else if (contador == 7)
                        //    label13.Text = "x";
                        else if (contador == 7)
                            label17.Text = "x";
                        else if (contador == 8)
                            label21.Text = "x";
                        contador++;
                        break;
                    default:
                        break;
                }
            }

    el resultado seria este

    Espero te sirva de ayuda.

    Saludos

    sábado, 5 de agosto de 2017 14:37

Todas las respuestas

  • Buenas,

    No he acabado de entender... el problema es que al darle click al boton X se dibuja todo a la vez y deberia dibujarse uno por uno o que se dibuja de uno en uno y deberia dibujarse a la vez?

    Si es el caso de que se dibujan a la vez(que entiendo que es el problema) y deberían dibujarse de uno en uno, puedes poner Thread.Sleep(int timeout) entre uno y otro para darle el delay que te interese.

    txt3.Text = "X";
    Thread.Sleep(100);
    txt4.Text = "X";
    Thread.Sleep(100);
    txt5.Text = .....
    ...........

    Si es el caso de que se dibujan de uno en uno y quieres a la vez, esta más complicado, pero lo que puedes hacer es quitar la visibilidad (textbox.Visible = false), hacer los cambios que quieres y despuésvolver a darle visiblidad

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!


    viernes, 4 de agosto de 2017 6:43
  • Hola gracias por tu respuesta pero la idea del punto es que cada vez que le de clic a x botón el me coloque una letra o numero a un cuadro que yo especifique hasta completar el dibujo por ejemplo si deseo hacer una cruz los cuadros de texto donde van a aparecer las x o las letras deben ser 2, 4, 5, 6, 8 que hacen la figura de la cruz, pero cada X en estos recuadros deben aparecer cuando yo le dé clic al boton mas no por tiempo. en resumen que tenga que darle por ejemplo con esta figura de la cruz debo darle 5 clics al botón cruz ya que cada vez que le de clic me va colocando un numero o letra en la respectiva casilla hasta completar la figura.

    1 2 3           2

    4 5 6        4 5 6

    7 8 9           8


    • Editado Richar1043 sábado, 5 de agosto de 2017 4:40
    sábado, 5 de agosto de 2017 4:34
  • Si tu dices que allí hay una cruz yo te creo..je. Bueno pero que controles puedes utilizar para el ejercicio? Porque para el caso podrias colocar un ComboBox1 y según sea; Cruz, Equis, Ele, mediante Select case puedes generar la figura je Select case ComboBox.text Case Cruz textbox1.text = 2, textbox2 = 456 ,textbox3 = 8
    sábado, 5 de agosto de 2017 5:01
  • Si tu dices que allí hay una cruz yo te creo..je. Bueno pero que controles puedes utilizar para el ejercicio? Porque para el caso podrias colocar un ComboBox1 y según sea; Cruz, Equis, Ele, mediante Select case puedes generar la figura je Select case ComboBox.text Case Cruz textbox1.text = 2, textbox2 = 456 ,textbox3 = 8

    Gracias por tu respuesta, creo que no he sabido explicar jaja. 

    Cada vez que le de clic a un botón especifico el me coloque una letra o numero en una casilla que yo le asigne, si quiero hacer una X hay una matriz 5*5 mientras le doy clic al botón me lleve una letra o numero a los cuadros de texto o labels hasta completar la figura en este caso una x, pero solamente cada vez que le de clic me va a llevar una x o numero.


    sábado, 5 de agosto de 2017 6:45
  • Buenas no se si abre entendido bien la problemática pero según lo que entendí es que tiene una pantalla como esta, donde tienes un texbox donde indicas por ejemplo dibujar una "x" en unos labels que tienes y lo que quieres es que cada vez que presiones el botón empiece a agregar una letra o numero desde la primera posicion

    prueba lo siguiente quizás no sea la mejor forma pero cumple según lo que entendi  crea una variable que aumente cada vez que presiones el botón

     private int contador = 0;

    private void button2_Click(object sender, EventArgs e)
            {
               switch (textBox1.Text)
                {
                    case "x":
                        if(contador==0)
                        label1.Text = "x";
                        else if (contador == 1)
                        label7.Text = "x";
                        else if (contador == 2)
                            label13.Text = "x";
                        else if (contador == 3)
                            label19.Text = "x";
                        else if(contador == 4)
                            label25.Text = "x";
                        else if (contador == 5)
                            label5.Text = "x";
                        else if (contador == 6)
                            label9.Text = "x";
                        //else if (contador == 7)
                        //    label13.Text = "x";
                        else if (contador == 7)
                            label17.Text = "x";
                        else if (contador == 8)
                            label21.Text = "x";
                        contador++;
                        break;
                    default:
                        break;
                }
            }

    el resultado seria este

    Espero te sirva de ayuda.

    Saludos

    sábado, 5 de agosto de 2017 14:37