Saludos a todos!!!!
Tengo un botón (button5) que está en el formulario principal de mi aplicación, al presionarlo recorre todos los controles del formulario y me dice cuantos controles hay de los tipos TextBox, PictureBox y Button. Lo hice así a nivel de ejemplo, pero realmente me interesa saber que controles hay para usar eso para algo más profundo.
private void button5_Click(object sender, EventArgs e)
{
int vBotones = 0, vTextBox = 0, vPictureBox = 0;
foreach (Control v_Control in this.Controls)
{
if (v_Control is Button)
{
v_Control.Text = vBotones.ToString();
vBotones += 1;
}
else if (v_Control is TextBox)
vTextBox += 1;
else if (v_Control is PictureBox)
vPictureBox += 1;
}
}
Lo anterior me funciona sin problemas, sin embargo, lo que deseo es tener en el formulario un ComboBox con los nombres de todos los formularios de mi aplicación. Por ejemplo frmVentas, frmClientes, frmPedidos, etc. y luego en la linea del código anterior:
foreach (Control v_Control in this.Controls)
yo poder cambiar this por el nombre del formulario que yo seleccione en el ComboBox y que me de la información de los controles del formulario que seleccione en el ComboBox.
Si yo creo una instancia de cada formulario, por ejemplo:
frmClientes instClientes = new frmClientes();
y luego en la linea pongo lo siguiente:
foreach (Control v_Control in instClienes.Controls)
me trabaja bien y me da los controles del formulario frmClientes, lo que yo quería era ver si existía una forma de solo tener la linea:
foreach (Control v_Control in XXXX.Controls)
y de alguna forma poner en XXXX la instancia del formulario que seleccione en el ComboBox. Es decir, convertir el texto del ComboBox en una instancia válida para pasarla a una variable XXXX.
Espero no haber sido muy complicada mi explicación. He probado con muchos códigos, pero no consigo lo que deseo, aunque hace años cuando programaba en visual basic 6 si lo logré.
Espero que alguien pueda ayudarme.