elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problemas con Labels y cadenas en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con Labels y cadenas en C#  (Leído 10,826 veces)
dark_headhunter

Desconectado Desconectado

Mensajes: 208


solo tu eres dueño de tu destino


Ver Perfil WWW
Problemas con Labels y cadenas en C#
« 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.


En línea

La informacion es nuestra arma, el anonimato nuestra armadura
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #1 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
  1. for (int i = 1; i < 5; i++) {
  2.  foreach(Control control in this.Controls) {
  3.      if (control.Name == "P" + i)
  4.          control.Text = i;
  5.  }
  6. }
  7.  


« Última modificación: 1 Diciembre 2010, 20:48 pm por raul338 » En línea

dark_headhunter

Desconectado Desconectado

Mensajes: 208


solo tu eres dueño de tu destino


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #2 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)
En línea

La informacion es nuestra arma, el anonimato nuestra armadura
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #3 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
  1. char[] letras = "HOLA".ToCharArray();
  2. char letraActual;
  3. for (int i = 0; i < letras.Length; i++) {
  4.   letraActual = letras[i];
  5.   // se trabaja con letra Actual
  6. }
  7.  
El for podria ser resumido a esto
Código
  1. char[] letras = "HOLA".ToCharArray();
  2. foreach (char letraActual in letras)
  3.   // se trabaja con letra Actual
  4. }
  5.  

:) espero que hayas entendido, ovbiamente el framework esta pensado y optimizado para hacer eso, no es por "ahorrar codigo" nada mas
En línea

dark_headhunter

Desconectado Desconectado

Mensajes: 208


solo tu eres dueño de tu destino


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #4 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.
En línea

La informacion es nuestra arma, el anonimato nuestra armadura
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #5 en: 1 Diciembre 2010, 23:01 pm »

Puedes poner el codigo que estas probando ? o el proyecto ?
En línea

dark_headhunter

Desconectado Desconectado

Mensajes: 208


solo tu eres dueño de tu destino


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #6 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];
                                    if (B.marcado == false) //Si no está marcado, es seleccionable
                                    {
                                        B.marcado = true; // marcamos para no volver a repetir

                                        aux = raiz + union;
                                        aux = aux as Control;
                                        "" + B.cadena = aux.Text;

                                        B = listaBloquesRespuestas[numero];
                                        B.marcado = true;
                                        listaBloquesRespuestas[numero] = B;
                                        P2.Text = "" + B.cadena;
En línea

La informacion es nuestra arma, el anonimato nuestra armadura
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #7 en: 2 Diciembre 2010, 00:10 am »

Código
  1. "" + B.cadena = aux.Text;
  2.  
Que intentas hacer en esa linea? :rolleyes:

En donde te tira el error de casting?

Puedes usar this.FindControl para llamarlo por texto tambien
En línea

dark_headhunter

Desconectado Desconectado

Mensajes: 208


solo tu eres dueño de tu destino


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #8 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.
En línea

La informacion es nuestra arma, el anonimato nuestra armadura
Siuto
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.587


Que puedo decir??


Ver Perfil WWW
Re: Problemas con Labels y cadenas en C#
« Respuesta #9 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
  1. List<Label> labels = new List<Label>();
  2.  
  3. labels.Add(this.label1);
  4. labels.Add(this.label2);
  5. labels.Add(this.label3);
  6. labels.Add(this.label4);
  7. ...

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
  1. foreach (Label label in labels)
  2. {
  3.    // metodo que recibe una label como parametro (por dar un ejemplo)
  4.    objeto.metodo(label);                
  5. }

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).
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Matriz de Labels
Programación Visual Basic
CsarGR 1 3,761 Último mensaje 19 Diciembre 2005, 18:55 pm
por NYlOn
Frames / Labels / VB
Programación Visual Basic
Wdeah 4 3,696 Último mensaje 16 Febrero 2006, 01:39 am
por NYlOn
Generar una lista con labels
Programación Visual Basic
Mr.Chispa 4 1,704 Último mensaje 2 Septiembre 2006, 20:56 pm
por Mr.Chispa
[RubyTK] Labels
Scripting
Erik# 0 2,121 Último mensaje 2 Marzo 2009, 14:12 pm
por Erik#
problemas con concatenar cadenas
Programación C/C++
d91 2 2,140 Último mensaje 15 Abril 2014, 15:53 pm
por d91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines