Problema con MessageBox

Iniciado por darkxxx, 1 Octubre 2008, 04:53 AM

0 Miembros y 1 Visitante están viendo este tema.

darkxxx

saludos a todos, seré breve, mi problema es el siguiente tengo un botón y una etiqueta label y quiero que cuando haga click en el botón en el label se vayan copiando 10 mensaje al mismo tiempo y para eso hago un contador pero porque el código no funciona y solo me imprime una vez en el label

namespace WindowsFormsApplication4
{
    public 
partial class Form1 Form
    
{
        public 
Form1()
        {
            
InitializeComponent();
        }

        private 
void button1_Click(object senderEventArgs e)
        {
            for (
int i 010i++)
            {
                
etiqueta.Text "hola";
            }
        }
    }
}


PD: soy novato en c#

Novlucker

No entiendo muy bien lo que quieres hacer... eso esta bien.. solamente que como el mensaje en el for es el mismo y todo ocurre tan rápido que no llegas a ver nada raro, pero seguro el for se ejecuta correctamente  :P
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

darkxxx

y porque en el label no me aparece

hola
hola
hola
hola
hola
hola
hola
hola
hola
hola

si no que me imprime 1 solo hola al hacer click en el boton

seba123neo

Hola, pues claro debes decirle que escriba "sobre el texto ya escrito", ahi esta escribiendo siempre una sola vez....algo asi:

etiqueta.Text = etiqueta.Text & vbnewline & "hola";

saludos.

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Novlucker

Ya te lo ha dicho seba123neo, del modo que tu lo estabas haciendo pisas los datos, si lo que quieres hacer es mostrar muchos "hola" debes de acumular los datos en la variable

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Meta

Cita de: darkxxx en  1 Octubre 2008, 04:53 AM
saludos a todos, seré breve, mi problema es el siguiente tengo un botón y una etiqueta label y quiero que cuando haga click en el botón en el label se vayan copiando 10 mensaje al mismo tiempo y para eso hago un contador pero porque el código no funciona y solo me imprime una vez en el label

namespace WindowsFormsApplication4
{
    public 
partial class Form1 Form
    
{
        public 
Form1()
        {
            
InitializeComponent();
        }

        private 
void button1_Click(object senderEventArgs e)
        {
            for (
int i 0=< 10i++)
            {
                
etiqueta.Text "hola";
            }
        }
    }
}


PD: soy novato en c#

En realidad si estás visualizando 10 veces hola lo que ocurre es que se sustituye 10 veces hola dentro del mismo objeto.

Código (csharp) [Seleccionar]
namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i =< 10; i++)
            {
               MessageBox.Show("Hola", "Mensaje",
                   MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

            }
        }
    }
}

Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

KJD

#6
como te dijeron recien, lo que pasa es que tu codigo dentro del for reemplaza el texto ya introducido, osea, en primera instancia tienes el label co un texto, cuando entra en el for, tu le dices que el texto ahora es "hola", cuando vuelve a ejecutarce el for, dices que el texto del lebel sea otra vez "hola", pero no le dices que mantenga el texto anterior, por lo que siempre visualizaras un solo "hola".

Intenta cambiar el codigo dentro del for por:

etiqueta.Text = etiqueta.Text + "hola\r\n";

asi sumara el valor antes almacenado en el label con el nuevo texto. (el \r\n es para que haga un salto de linea)

Otra aclaracion, tu bucle for, solo podras visualizar 9 "holas", cambia la condicion a i<=10.
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

MANULOMM

hola es como dicen pero en c# pueden hacerlo asi:

   etiqueta.tex += "Hola";


Atentamente,

Juan Manuel Lombana
Medellín - Colombia



KJD

Cita de: MANULOMM en  1 Octubre 2008, 15:08 PM
hola es como dicen pero en c# pueden hacerlo asi:

   etiqueta.tex += "Hola";


Atentamente,

Juan Manuel Lombana
Medellín - Colombia



no es por ofender, pero si lo pone asi, obtendra algo como "HolaHolaHolaHolaHolaHolaHolaHolaHola", tiene que agregarle el \r\n.
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???

el_chente23

Cita de: KJD en  1 Octubre 2008, 13:44 PM
Otra aclaracion, tu bucle for, solo podras visualizar 9 "holas", cambia la condicion a i<=10.

No, asi como esta esta correcto, si le agrega el = mostraria 11 hola porque el indice empieza de 0  ;D

Saludos