Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: darkxxx en 1 Octubre 2008, 04:53 am



Título: Problema con MessageBox
Publicado por: 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 sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                etiqueta.Text = "hola";
            }
        }
    }
}
PD: soy novato en c#


Título: Re: Problema con MessageBox
Publicado por: Novlucker en 1 Octubre 2008, 04:57 am
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


Título: Re: Problema con MessageBox
Publicado por: darkxxx en 1 Octubre 2008, 04:59 am
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


Título: Re: Problema con MessageBox
Publicado por: seba123neo en 1 Octubre 2008, 05:05 am
Hola, pues claro debes decirle que escriba "sobre el texto ya escrito", ahi esta escribiendo siempre una sola vez....algo asi:

Código:
etiqueta.Text = etiqueta.Text & vbnewline & "hola";

saludos.



Título: Re: Problema con MessageBox
Publicado por: Novlucker en 1 Octubre 2008, 05:13 am
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


Título: Re: Problema con MessageBox
Publicado por: Meta en 1 Octubre 2008, 08:37 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 sender, EventArgs e)
        {
            for (int i = 0; i =< 10; i++)
            {
                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
  1. namespace WindowsFormsApplication4
  2. {
  3.    public partial class Form1 : Form
  4.    {
  5.        public Form1()
  6.        {
  7.            InitializeComponent();
  8.        }
  9.  
  10.        private void button1_Click(object sender, EventArgs e)
  11.        {
  12.            for (int i = 0; i =< 10; i++)
  13.            {
  14.               MessageBox.Show("Hola", "Mensaje",
  15.                   MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  16.  
  17.            }
  18.        }
  19.    }
  20. }
  21.  
Saludos.


Título: Re: Problema con MessageBox
Publicado por: KJD en 1 Octubre 2008, 13:44 pm
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:

Código:
 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.


Título: Re: Problema con MessageBox
Publicado por: MANULOMM en 1 Octubre 2008, 15:08 pm
hola es como dicen pero en c# pueden hacerlo asi:
Código:
   etiqueta.tex += "Hola";

Atentamente,

Juan Manuel Lombana
Medellín - Colombia



Título: Re: Problema con MessageBox
Publicado por: KJD en 1 Octubre 2008, 15:27 pm
hola es como dicen pero en c# pueden hacerlo asi:
Código:
   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.


Título: Re: Problema con MessageBox
Publicado por: el_chente23 en 16 Octubre 2008, 21:35 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