• Domingo 22 de Diciembre de 2024, 04:16

Autor Tema:  Usar Valor De Variable Como Nombre De Objeto  (Leído 1828 veces)

Reflected_God

  • Visitante
Usar Valor De Variable Como Nombre De Objeto
« en: Domingo 28 de Octubre de 2007, 17:00 »
0
Hola a todos.

Es mi primer mensaje en este foro... y visto lo visto no sera el ultimo, porque me he propuesto aprender algo de C# a lo largo de este año y veo que me queda mucho por delante :D

Bueno, tengo una duda sobre, como dice el nombre de este mensaje, usar el valor de una variable como si fuera el nombre de un objeto.

Intentare explicar lo que quiero decir con un ejemplo de codigo sencillo:

(Suponemos que esta declarada una variable llamada x, que AUN NO SE DE QUE TIPO DEBE DE SER :-p).

x = "TextBox1";
x.Text = "Hola mundo";


Lo explico un poco: Quiero usar el valor de la variable x ("TextBox1") como referencia a un TextBox que tiene ese nombre, para cambiar su propiedad .Text.

Espero haberme explicado bien, si no, intentare hacerlo mejor.

Muchas gracias.

Vlade

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Usar Valor De Variable Como Nombre De Objeto
« Respuesta #1 en: Domingo 28 de Octubre de 2007, 17:34 »
0
Hola, sinceramente no entendi vien lo que quieres hacer, pero por  el ejemplo que das creo que quieres asignarle "hola mundo" a textbox, si es asi, entonces lo que tienes que hacer es esto:

TextBox1.text= "Hola Mundo";


pero si quieres asignarle a una variable el "hola mundo" entonces es esto:

string x;

x="Hola Mundo";


espero que te sirva sino, entonces no te entendi.   :lol:
Hola.

Reflected_God

  • Visitante
Re: Usar Valor De Variable Como Nombre De Objeto
« Respuesta #2 en: Domingo 28 de Octubre de 2007, 17:43 »
0
...No, no era eso :D

Lo que quiero hacer es asignarle a un TextBox, cuyo nombre coincide con el valor de una variable, un texto.

A ver si asi se entiende mejor:

TextBox1.text= "Hola Mundo"; ==> Escribe en un TexBox llamado "TextBox1" el texto "Hola Mundo".



x="TextBox1";
x.Text = "Hola Mundo"; ==> TAMBIEN escribe en un TextBox llamado "TextBox1" el texto "Hola Mundo".


Los dos ejemplos hacen lo mismo, solo que en el primero uso directacmente el objeto y en el segundo llamo al objeto a traves del valor de la variable x, que es "TextBox1".

En este ejemplo es un poco absurdo, porque son dos lineas para hacer lo que se puede hacer en una, pero creo que es bastante explicito :D

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Usar Valor De Variable Como Nombre De Objeto
« Respuesta #3 en: Lunes 29 de Octubre de 2007, 01:39 »
0
puedes usar el la clase system.reflection.assembly para cargar la el ensmblado que contiene la clase que necesitas y luego creas una instancia con el metodo createinstanace.

Reflected_God

  • Visitante
Re: Usar Valor De Variable Como Nombre De Objeto
« Respuesta #4 en: Jueves 1 de Noviembre de 2007, 19:50 »
0
Gracias por la respuesta. He intentado "comprender" como funciona Reflection, pero no me queda claro del todo (y llevo un par de dias buscando informacion, no creais que no me estoy rompiendo la cabeza...).

Se como cargar formularios con Reflection, pero no un textbox...

Mi idea era hacer algo como:

Código: Text
  1. private System.Reflection.Assembly ass;
  2.  
  3. ass = System.Reflection.Assembly.GetExecutingAssembly();
  4.  
  5. string s = "TextBox1";
  6. Type t = ass.GetType(s);
  7. object o;
  8.  


Pero en la linea:
Código: Text
  1. Type t = ass.GetType(s);
  2.  
Me da "Null reference".

He visto ejemplos por internet que funcionan porque en vez de trabajar con la clase TextBox que es la que me interesa a mi para mi programa" lo hace con la clase Form y muestra formularios, cogiendo su nombre de un ListBox.

Si me podeis arrojar algo de informacion sobre del "Type" lo agradeceria mucho :D