Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Añadir y eliminar pestaña usando el control tabcontrol c#
#1
Añadir y eliminar pestaña usando el control tabcontrol c#

es visto por la red la cantidad de gentes que hacer la pregunta de como crear pestaña y eliminar pestaña usando el control TabControl. En C#

debido a esto me el animador a crear un Minitutorial de como crear pestaña y eliminar pestaña, el código que mostrare el parte de la creación de un navegador que estoy creando con pestaña de navegación aunque le es quitado parte de código solo necesitaremos dos funciones.
CrearPestaña() y EliminarPestaña() así como un ArrayList llamado ListaPestaña, este Array guardara cada pestaña que vayamos creando, necesitaremos también una variable de tipo int, llamada ContarPestaña, esta variable llevara el control de la cantidad de pestaña que tenemos guardado en ArrayList también no servirá para selecciona pestaña a eliminar.

En este ejemplo vamos a crear un pequeño proyecto de tipo Aplicación Windows Forms que solo va a tener los siguiente controles un control Tabcontrol1 dos botones que sera para crear y eliminar pestaña el diseño de nuestra ventana de nuestra aplicación de ejemplo quedara mas o meno como se vez en la siguiente figura


Paso 1 – Creación de un proyecto nuevo en visual studio
creamos un proyecto nuevo de Aplicación Windows Forms y rellenamos los datos de proyecto como nombre ubicación una ver rellenado pulsamos en aceptar y visual studio no abrirá el proyecto recién creado

[Imagen: tabproyecto.png]

Paso 2 – inserta los controles en el formulario

el siguiente paso el inserta los controles en nuestro formulario de la siguiente manera primero arrastramos a formulario el control TabControl. Y modificamos su tamaño a nuestro gusto.

[Imagen: tabcontrol.png]

Ahora vamos a eliminar la dos pestaña que se a creado por defecto a crear el control TabControl.
seleccionamos el control TabControl1, veremos que los tenemos seleccionado porque sale los controladores de tamaño alrededor de control, si no fijamos veremos un pequeño triangulo arriba a la derecha, si los pulsamos no salda un menú sirve para añadirle pestaña, y también para quitar pestaña, pulsamos dos veces sobre Quitar ficha y veremos que vemos eliminado la dos ficha, y en su lugar solo no queda un rectángulo blanco.

[Imagen: tabcontrolelimina.png]

el siguiente paso es arrastra dos controles button a formulario a primer botón le cambiamos la propiedades de texto a Crear Pestaña y a segundo botón le cambiamos la propiedades de texto a Eliminar pestaña

[Imagen: botoncrearpestaa.png] [Imagen: tabeliminar.png]

Paso 3 – añadiendo código Creación de la función CrearPestaña
en primer lugar necesitamos añadirle a nuestro proyecto el siguiente espacio de nombre a principio de nuestro proyecto

using System.Collections; //necesario para usar los arraylist

luego dentro de la clases Form1 creamos la siguiente objecto y variable
Cita:public partial class Form1 : Form
{
ArrayList
ListaPestaña = new ArrayList();
int ContarPestaña = 0;
el objecto ListaPestaña se encarga de guarda de, almacena cada pestaña, con esto tendremos control sobre la pestaña a tenerla almacenada.

la variable ContarPestaña, lleva un control sobre la cantidad de pestaña que llevamos almacenado en el objecto ListaPestaña, de esta manera podemos eliminar pestaña por medio de indice de esta variable.

Ahora vamos a crear la función CrearPestaña() como su nombre indica es para crear pestaña en tiempo de ejecución añadimos el siguiente código de la función.
Cita: private void [/color]CrearPestaña()
[color=#0000FF] {

// Creamos una nueva Pestaña
TabPage NuevaPestaña = new TabPage("Nueva 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
tabControl1.SelectedTab = NuevaPestaña; //seleccionamos la pestaña
}

la función de CrearPestaña es fácil de entender y bastante corta de todos modo explicare el código de la función primero creamos un TabPage que no es mas que una ficha(pestaña) por medio de constructor de objecto le pasamos en titulo que queremos que tenga la pestaña.
una vez que vemos creado una pestaña guardamos esa pestaña con su titulo en el ArrayList ListaPestaña
luego cargamos esa pestaña en el control TabControl1.

incrementamos la variable ContarPestaña a +1
luego marcamos la pestaña recién creada como seleccionada mediante la propiedades de TabControl.SelectedTab le pasamos la pestaña recién creada.

Paso 4 – Añadiendo código Creación de la función EliminarPestaña()
la función EliminarPestaña() como su nombre indica Eliminar pestaña cada vez que es llamada aquí esta el código de la función
Cita: private void EliminarPestaña()
{
TabPage current_tab = tabControl1.SelectedTab;
ListaPestaña.Remove(current_tab);
tabControl1.TabPages.Remove(current_tab);
ContarPestaña--;
}
como vemos el código de la función es bastante corto, primero creamos un TabPage vació, y le pasamos la pestaña que tenemos seleccionada para eliminar. luego eliminamos las pestaña de las lista, y también de TabControl1y por últimos restamos un -1 a la variable ContarPestaña.

Ya tenemos terminado implementado en nuestro programa de crear y eliminar pestaña solo no queda llama a cada una de esta dos funciones desde los botones vamos a ver como llama a la función de CrearPestaña() desde el botón Crear Pestaña para ello entramo en modo diseño y seleccionamos el botón Crear Pestaña y damos dos click seguido sobre el botón veremos como visual studio no poner en modo código y no agregado el evento click de botón que es el siguiente

Cita: private void button1_Click(object sender, EventArgs e)
{

}
los único que debemos de añadirle a evento de la función es el código siguiente

Cita:private void button1_Click(object sender, EventArgs e)
{
CrearPestaña();
}
de esta manera cada vez que pinchemos sobre el botón Crear Pestaña llamara a la función CrearPestaña(); y mostrara una pestaña creada en el Control TabControl1 y si volvemos a pincha de nuevo se creara otras pestaña.

Los mismo hacemos con el boto de eliminar pestaña seleccionamos el botón Eliminar Pestaña y damos dos click seguido se no abrirá el edito de código con el evento de click de botón que es el siguiente

Cita: private void button2_Click(object sender, EventArgs e)
{

}
los único que debemos de añadirle a evento de la función es el código siguiente

Cita:private void button2_Click(object sender, EventArgs e)
{
EliminarPestaña();
}

de esta manera cada vez que se haga click en el botón Eliminar Pestaña se llamara a la función EliminarPestaña() y eliminara la pestaña que se tenga seleccionada en eso momento en el control.

Aquí esta el código completo

Cita:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections; //necesario para usar los arraylist

namespace Ejemplo_Crear_Pestana
{
public partial class Form1 : Form
{
ArrayList ListaPestaña = new ArrayList();
int ContarPestaña = 0;
public Form1()
{
InitializeComponent();
}
private void CrearPestaña()
{
// Creamos una nueva Pestaña
TabPage NuevaPestaña = new TabPage("Nueva 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
tabControl1.SelectedTab = NuevaPestaña; //seleccionamos la pestaña
}

private void EliminarPestaña()
{
TabPage current_tab = tabControl1.SelectedTab;
ListaPestaña.Remove(current_tab);
tabControl1.TabPages.Remove(current_tab);
ContarPestaña--;
}
private void button1_Click(object sender, EventArgs e)
{
CrearPestaña();
}
private void button2_Click(object sender, EventArgs e)
{
EliminarPestaña();
}

}
}
#2
Muy bueno... Esto les gustara a los usuarios que siguen tus tutoriales desde aqui...

Ah! por cierto, que bien volverte a ver por aqui Guiño
WWW
#3
Estupendo aporte jesulillo, y bienvenido de nuevo Guiño
WWW
#4
aunq C# no es mi fuerte, el esquema de programación es el mismo.

Este tutorial es un claro ejemplo de lo conocido como "creación de objetos en tiempo de ejecución" empleado con mucha frecuencia en entornos de programación orientados a objetos.

De la misma forma, pueden crearse formularios, botones, o casi cualquier otro objeto (y destruirlo) mientras se ejecuta el programa lo q permite una reducción en el tamaño del ejecutable y en el uso de memoria.
[Imagen: firmabp.jpg][Imagen: mineenlineaentregadispo.jpg]
WWW
#5
Minenage escribió:aunq C# no es mi fuerte, el esquema de programación es el mismo.

Este tutorial es un claro ejemplo de lo conocido como "creación de objetos en tiempo de ejecución" empleado con mucha frecuencia en entornos de programación orientados a objetos.

De la misma forma, pueden crearse formularios, botones, o casi cualquier otro objeto (y destruirlo) mientras se ejecuta el programa lo q permite una reducción en el tamaño del ejecutable y en el uso de memoria.

Efectivamente mine con c# todos se programa con objecto C# es totalmente orientando a objecto todos obligatoriamente el código deber de esta dentro de una clases. Todos programador que alla programado en c o en c++ incluso en php se no tendrá problema con c# yo te recomendaría que probara c# pero claro como es creado por la compañía de microsoft pues quiza sea de los tipo de usuario tonto que echa peste de los producto de esta compañía

efectivamente el código de este tutorial crear pestaña en tiempo de ejecución y se destruye cuando el usuario la eliminar o cuando se cierra el programa
#6
Fantástico, muy bien explicado, me sirvió Guiño

Solo un apunte, no utilices un "ContarPestaña" ya tienes tabControl1.TabPages.Count, es mas fiable y sencillo

Muy bueno tu tutorial, un saludo!!
#7
vaya pues jesuli te hablan, y bienvenido elpetakas Lengua
[Imagen: bann.png]
WWW
#8
Genial el aporte men, me ha ayuda mucho a aprender el idioma.
#9
Excelente aporte!! pero alguien sabra algo del uso de ventanas MDI ,un curso para aprender a como usarlas ,como pasar parametros de una a otra , de hija a padre ,etc? ,se los agradeceria saludos
#10
la verdad que me falta aprender el idioma

probare aver q tal ;D
WWW


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Modos de tema Usando la API de Twitter en PHP cmascreativo 4 155 02-03-2018, 08:10 AM
Último mensaje: easy english
  [Aporte] Usando la API de imgur con PHP Jvh_22 3 516 01-12-2016, 11:06 PM
Último mensaje: zeuz
  Usando la API de Twitter en PHP cmascreativo 4 558 04-03-2016, 05:44 PM
Último mensaje: mispracticas2009
  [Duda] Ayuda para añadir nueva recaptcha de google fercol 9 788 13-12-2015, 02:31 PM
Último mensaje: fercol
  [Duda] Icono en pestaña de navegador larr86 4 466 12-12-2015, 07:29 AM
Último mensaje: gassip
  Enviar datos vía post y get usando cURL y PHP torgar22 5 3,713 30-11-2015, 06:36 AM
Último mensaje: habacuc78
  [Duda] Imposible eliminar redireccionamiento avapserveis2 5 362 13-07-2015, 12:49 PM
Último mensaje: papi
  Enviar correos con cabaceras usando la funcion mail() torgar22 0 348 28-02-2015, 02:44 PM
Último mensaje: torgar22
  [PHP] Código para crear y eliminar una base de datos de MySQL desde PHP torgar22 5 676 27-02-2015, 12:57 AM
Último mensaje: yayito21
  Añadir valor css sobre css externo celticslment 2 489 22-11-2014, 07:41 PM
Último mensaje: Joseahfer



Usuarios navegando en este tema: 1 invitado(s)