Título: Problemas con Labels y cadenas en C# Publicado por: dark_headhunter en 1 Diciembre 2010, 20:32 pm Hola amigos, tengo un problema:
Tengo 10 "Labels" con los nombres de P1..P10 me gustaría mediante un bucle while, concatenar a un raíz P, un int que vaya creciendo de 1 a 10 y que según va creciendo va asignando unos valores a los nombre de etiquetas. El problema es que si pongo P1.Text = "lo que sea" sí me deja, pero si pongo aux.Text = "lo que sea", siendo aux = P1, no. ¿Puede alguien ayudarme? Gracias y un saludo. Título: Re: Problemas con Labels y cadenas en C# Publicado por: raul338 en 1 Diciembre 2010, 20:44 pm Puedes hacer un foreach de Me.Controls y ver si el nombre es P(numero) y asi aplicarle el text
EJ: Teniendo 4 botones P1, P2, P3, P4 Código
Título: Re: Problemas con Labels y cadenas en C# Publicado por: dark_headhunter en 1 Diciembre 2010, 21:10 pm Hola, Gracias por la respuesta, Te explico, De C++ tengo nociones más o menos sólidas, pero con C# soy novato a más no poder. ¿Podrías explicarme esto:?
Código: foreach(Control control in this.Controls) Título: Re: Problemas con Labels y cadenas en C# Publicado por: raul338 en 1 Diciembre 2010, 21:21 pm foreach recorre un Arreglo, colección, objetos enumerarles devolviéndolos como si fueran uno solo
Si lo puedes entender mejor tal vez asi: Código El for podria ser resumido a esto Código
:) espero que hayas entendido, ovbiamente el framework esta pensado y optimizado para hacer eso, no es por "ahorrar codigo" nada mas Título: Re: Problemas con Labels y cadenas en C# Publicado por: dark_headhunter en 1 Diciembre 2010, 22:23 pm No me funciona. El problema es que no me considera P1 una cadela y no la referencia a la etiqueta.Pero no sé como arreglarlo.
Título: Re: Problemas con Labels y cadenas en C# Publicado por: raul338 en 1 Diciembre 2010, 23:01 pm Puedes poner el codigo que estas probando ? o el proyecto ?
Título: Re: Problemas con Labels y cadenas en C# Publicado por: dark_headhunter en 1 Diciembre 2010, 23:36 pm Sí, por supuesto:
** He investigado, y al parecer el problema se llama casting o conversión de tipos, no se si un Label es un Control, pero parece que por ahí van los tiros. La cosa es que quiero mostrar una cadena es una label y la conversión no es Implícita. ** Copio la parte del problema: Bloque es una estruct con una cadena, un entero y un booleano, llamados cadena, id y marcado respectivamente. Código: B = listaBloquesPreguntas[numero]; Título: Re: Problemas con Labels y cadenas en C# Publicado por: raul338 en 2 Diciembre 2010, 00:10 am Código Que intentas hacer en esa linea? :rolleyes: En donde te tira el error de casting? Puedes usar this.FindControl para llamarlo por texto tambien Título: Re: Problemas con Labels y cadenas en C# Publicado por: dark_headhunter en 2 Diciembre 2010, 00:26 am Me dice que no tiene aux la propiedad text, vamos, como debería se una Label.
Es que necesitaría algo así como las funciones itoa o atoi de c++, pero que pase de cadena a label. Título: Re: Problemas con Labels y cadenas en C# Publicado por: Siuto en 2 Diciembre 2010, 05:33 am Lo que tenes que hacer para poder hacerlo de esa forma es usar reflection, pero no es la mejor opción, probablemente sea la peor.
Una opcion mas feliz seria poner cada label sobre los que queres iterar en una lista e ir recorriendo la lista con un bucle foreach() como te dijeron antes, algo asi: Código
Este code esta dentro de la clase Form1 (o como se llame tu formulario) y para después recorrerlo lo haces como te dijeron con un foreach() Código
En el foreach() tiene todo nombres muy parecidos, pero una vez que lo aprendes a leer es siempre la misma sintaxis, nota que primero declaro una variable de tipo Label (empieza en mayúscula) con nombre label (minúscula) para recorrer la colección labels (plural y minuscula). Título: Re: Problemas con Labels y cadenas en C# Publicado por: .::IT::. en 2 Diciembre 2010, 05:54 am Completamente de acuerdo con Siuto. aqui un ejemplo probado
Código
Título: Re: Problemas con Labels y cadenas en C# Publicado por: raul338 en 2 Diciembre 2010, 13:36 pm Tuviste un error de sintaxis
Código: "" + B.cadena = aux.Text; la asignacion siempre se hace de izquierda a derecha, nunca al revez. Segundo, no puedes hacer casting directo entre una esctructura a un objeto nativo. Aca te pongo este code que es lo que necesitas. Código
Espero que te sirva! Título: Re: Problemas con Labels y cadenas en C# Publicado por: Edu en 22 Diciembre 2010, 21:25 pm Si leen bien lo q comento al principio de todo todo, parece q solo pide crear un array de labels, para hacer P(0) , P(1) etc xD
Se fueron lejos si tengo razon xD pero no creo. |