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#
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
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
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.
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
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 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.
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.
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.
hola es como dicen pero en c# pueden hacerlo asi:
etiqueta.tex += "Hola";
Atentamente,
Juan Manuel Lombana
Medellín - Colombia
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.
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