Foros del Web » Programación para mayores de 30 ;) » .NET »

Manipulación Dinámica de Propiedades de Controles

Estas en el tema de Manipulación Dinámica de Propiedades de Controles en el foro de .NET en Foros del Web. Buen Dia foro. mi pregunta es la siguiente: tengo una cantidad de botones con los nombres Boton1,Boton2,Boton3,...,BotonN y una lista de N elementos que traigo ...
  #1 (permalink)  
Antiguo 16/03/2012, 13:56
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Manipulación Dinámica de Propiedades de Controles

Buen Dia foro.

mi pregunta es la siguiente:

tengo una cantidad de botones con los nombres Boton1,Boton2,Boton3,...,BotonN
y una lista de N elementos que traigo de una base de datos.

Lo que quiero hacer es que cada boton me presente en Boton.text el elemento correspondiete en la lista.

Ej:

Boton1.text=miLista.item(0)
Boton2.text=miLista.item(1)
Boton3.text=miLista.item(2)
BotonN.text=miLista.item(N)

La cantidad de botones que creo depende de la cantidad de registro que traigo de la base de datos, por eso no puedo asignar los valores directamente porque no se cuantos registros traere.

lo que quisiera saber es si existe alguna forma de asignarlo dinamicamente, algo como esto:

for fila=0 to miLista.count-1
dim var as string="Boton"+fila.tostring.trim+".text="+fila.it em(fila)
ejecutar var
endfor

en Visual FoxPro podia hacer esto con el comando & que ejecuta instrucciones desde un string.

que me recomiendan hacer??

Estoy trbajando con Visual Basic .Net 2010
  #2 (permalink)  
Antiguo 16/03/2012, 13:58
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Manipulación Dinámica de Propiedades de Controles

Hola.
Muestra como creas los botones.
Porque en el momento de crearlos tu le puedes llevar el valor la propiedad Text
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #3 (permalink)  
Antiguo 16/03/2012, 14:04
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Manipulación Dinámica de Propiedades de Controles

Cita:
Iniciado por ramirezmario7 Ver Mensaje
Hola.
Muestra como creas los botones.
Porque en el momento de crearlos tu le puedes llevar el valor la propiedad Text
Pues los botones ya están creados dentro de un groupbox son 9 en total, lo que hago es que presento los primeros 9 registros de la base de datos,luego al presionar el botón siguiente muestro los 9 que siguen y así sucesivamente.

el problema es que no quiero usar 9 IF para pasar los valores cada vez que presiono el botón siguiente.

Y quisiera saber si hay alguna forma de hacerlo con un ciclo o una función que me lo facilite así como en VFP.

Lo que estoy haciendo es pasar un sistema de VFP a VB .NET y me encontre con ese problema.
  #4 (permalink)  
Antiguo 16/03/2012, 14:22
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Manipulación Dinámica de Propiedades de Controles

Hola.

Tocaria pensar cual es la mejor forma.
en este momento se me ocurre crear una variable publica entera, cada vez que le des click a siguiente incrementar esta variable en 9, esta variable la usarias para la posicion.
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #5 (permalink)  
Antiguo 16/03/2012, 14:27
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Manipulación Dinámica de Propiedades de Controles

Cita:
Iniciado por ramirezmario7 Ver Mensaje
Hola.

Tocaria pensar cual es la mejor forma.
en este momento se me ocurre crear una variable publica entera, cada vez que le des click a siguiente incrementar esta variable en 9, esta variable la usarias para la posicion.
ya tengo algo así para ir trayendo los resultados de 9 en 9, el problema es como pasarle los valores de los 9 registros a los 9 botones sin usar 9 if para preguntar la posición de la fila en la lista y luego asignar el valor al botón.

dentro del mismo formulario tengo otro groupbox con 25 botones entonces en ese tendría que hacer 25 if, es por eso quiero hacerlo con un ciclo o algo asi
  #6 (permalink)  
Antiguo 16/03/2012, 15:34
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Manipulación Dinámica de Propiedades de Controles

Hola.
Mira esto que estava probando.
Todavia le falta trabajarle mas pero es mas o menos para que te guies.

Primero que todo tengo las variables globales:
private int cantInicial = 0;
private int cantFinal = 0;
private List<string> datos = new List<string>();
List<Control> botones = new List<Control>();

Luego lo que hago es hacer una lista con los botones que van a estar cambiando la propiedad Text de forma manual. esto lo hine en el constructor despues del InitializeComponent();

for (int i = 0; i < this.Controls.Count; i++)
{
if (this.Controls[i].GetType().Name.Equals("Button") &&
this.Controls[i].Name.Contains("btnCambio"))
{
botones.Add(this.Controls[i]);
}
}
Esto lo que hace es recorrer todos los hijos del formulario, no lo meti en un groupbox a ti te quedaria mas facil porque es sino llamar los hijos del groupbox, yo coloque en la propiedad name de los botones que van a cambiar que tubieran parecido el valor(btnCambio1,btnCambio2...)

Luego en el boton de siguiente hago esto.

int cont = 0;
cantFinal += 9;
while (cantInicial < cantFinal)
{
botones[cont].Text = datos[cantInicial];
cont += 1;
cantInicial += 1;
}

Espero que te sirva.

no uso VB.NET pero te paso esta pagina para que conviertas el codigo C# a VB
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #7 (permalink)  
Antiguo 16/03/2012, 15:48
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Manipulación Dinámica de Propiedades de Controles

Ok probare esto en VB y luego te cuento como me fue

Muchisimas gracias por su ayuda
  #8 (permalink)  
Antiguo 19/03/2012, 08:06
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Manipulación Dinámica de Propiedades de Controles

Cita:
Iniciado por ramirezmario7 Ver Mensaje
Hola.
Mira esto que estava probando.
Todavia le falta trabajarle mas pero es mas o menos para que te guies.

Primero que todo tengo las variables globales:
private int cantInicial = 0;
private int cantFinal = 0;
private List<string> datos = new List<string>();
List<Control> botones = new List<Control>();

Luego lo que hago es hacer una lista con los botones que van a estar cambiando la propiedad Text de forma manual. esto lo hine en el constructor despues del InitializeComponent();

for (int i = 0; i < this.Controls.Count; i++)
{
if (this.Controls[i].GetType().Name.Equals("Button") &&
this.Controls[i].Name.Contains("btnCambio"))
{
botones.Add(this.Controls[i]);
}
}
Esto lo que hace es recorrer todos los hijos del formulario, no lo meti en un groupbox a ti te quedaria mas facil porque es sino llamar los hijos del groupbox, yo coloque en la propiedad name de los botones que van a cambiar que tubieran parecido el valor(btnCambio1,btnCambio2...)

Luego en el boton de siguiente hago esto.

int cont = 0;
cantFinal += 9;
while (cantInicial < cantFinal)
{
botones[cont].Text = datos[cantInicial];
cont += 1;
cantInicial += 1;
}

Espero que te sirva.

no uso VB.NET pero te paso esta [URL="http://www.elguille.info/NET/WebServices/deCSaVB_web.aspx"]pagina[/URL] para que conviertas el codigo C# a VB
Muchísimas Gracias, funciono a la perfección para lo que quiero hacer

Etiquetas: basic, controles, dinamico, vfp, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:59.