bueno luego de casi 5 meses sin poder actualizar el contenido iPrOgRaMeXiOn, regresa con nuevos ejemplos y adentrandonos a conocer lenguajes como ser Python, Java y mucho mas.
bueno en este post quiero mostrar un sencillo ejemplo de como crear controles en tiempo de ejecución, en este caso crearemos las pestañas de un TabControl y dentro de cada pestaña se creara un Richtexbox y un Label, algo sencillo solo para mostrarles como funciona.
EMPECEMOS
1. iniciamos un nuevo proyecto windows
2. colocamos un tabcontrol y 2 botones (Nueva Pestaña, Eliminar Pestaña)
3. nos declaramos una variable global y un ArrayList Global
// codigo fuente
ArrayList ListaPestaña = new ArrayList();
int ContarPestaña = 1;
ahora escribimos el codigo del procedimiento para crear pestañas
// codigo fuente
private void CrearPestaña()
{
// Creamos una nueva Pestaña
TabPage NuevaPestaña = new TabPage("pestaña " + ContarPestaña); // Creamos una nueva pestaña
ListaPestaña.Add(NuevaPestaña); // cada pestaña creada los añadimos en un arraylist
tabControl1.TabPages.Add(NuevaPestaña); //cargamos la pestaña en el control
ContarPestaña++; //variable que lleva el control de la cantidad de pestaña creada
//creamos el richtextbox
RichTextBox textbox = new RichTextBox();
//textbox.Dock = System.Windows.Forms.DockStyle.None;
textbox.Location = new System.Drawing.Point(130, 3);
textbox.Size = new System.Drawing.Size(230, 264);
textbox.Name = "pestaña" + ContarPestaña;
textbox.Text = "RichTextBox creado para la pestaña # " + ContarPestaña;
//creamos el Label
Label lbl = new Label();
btn.Location = new System.Drawing.Point(5, 4);
btn.Text = "Esta es la pestaña # " + ContarPestaña;;
//aderimos nuestros dos controles creados a la pestaña creada
NuevaPestaña.Controls.Add(textbox);
NuevaPestaña.Controls.Add(lbl);
tabControl1.SelectedTab = NuevaPestaña; //seleccionamos la pestaña
}
ahora el procedimiento para cerrar pestaña
// codigo fuente
private void EliminarPestaña()
{
//obtemos la pestaña que esta selcionada y la eliminanos
//de la lista y del Tabcontrol
TabPage current_tab = tabControl1.SelectedTab;
ListaPestaña.Remove(current_tab);
tabControl1.TabPages.Remove(current_tab);
//decrementamos la variable global
ContarPestaña--;
}
en el botón "Nueva Pestaña" colocamos lo siguiente
// codigo fuente
CrearPestaña()
y en el botón "Cerrar Pestaña" colocamos lo siguiente
// codigo fuente
EliminarPestaña();
también podemos obtener lo que escribamos en cada RichTextBox de la siguiente forma, para mostrarles un ejemplo sencillo coloque un botón mas con el nombre "Print", lo que hará este botón sera obtener lo que escribamos en cualquier RichTexbox de las pestañas creadas y mostrarlo en un Messagebox.
en el botón Print colocamos lo siguiente
// codigo fuente
MessageBox.Show(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].Text);
//en este caso accedo al control "0" por que es el primero q se crea en la pestaña, para acceder al Label tendríamos que poner "1" en ves de "0"