Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/05/2009, 09:28
Tonetete
 
Fecha de Ingreso: marzo-2009
Mensajes: 11
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: ProgressBar y C#

Después de muchos quebraderos de cabeza, al fin lo he conseguido pero de otra forma sin usar thread.

Copio código y explico por si alguien más necesita ayuda sobre este tema:

public partial class Progreso : Form
{
Base_de_Datos_FormulaDataContext db = new Base_de_Datos_FormulaDataContext();
private int id_categoria;



public Progreso(int id_categoria)
{
this.id_categoria = id_categoria;
InitializeComponent();
}

private void timer1_Tick(object sender, EventArgs e)
{

timer1.Stop();
mostrar_formulario();
}

private void mostrar_formulario()
{
Insertar_Equipo formu = new Insertar_Equipo(id_categoria, this);
formu.ShowDialog();

}

private void Progreso_Load(object sender, EventArgs e)
{
timer1.Start();

}
}

Basícamente este es el código del formulario "Progreso" que es donde se haya el progressbar y todo lo referente al estado de carga del segundo formulario dónde se hayará el cbx con los datos, al hacer la carga inicio un timer que el tick está puesto en 2 segundos (basícamente hago esto para que muestre el formulario este antes de que llame al segundo formulario, si no no se muestra)

Al entrar en el tick se va al método "mostrar_formulario()" dónde crea un nuevo objeto del formulario Insertar_equipo el cual le pasa un id (cosa ke tiene ke ver para mi a la hora de insertar datos) y el this (el formulario este en cuestión)

public partial class Insertar_Equipo : Form
{
Progreso formu;
public Teams teams = new Teams();
private int id_categoria;
private Boolean equipo_insert_mod = false;
private int id_equipo;
Base_de_Datos_FormulaDataContext db = new Base_de_Datos_FormulaDataContext();

public Insertar_Equipo(int id_categoria, int id_equipo, Progreso formu)
{
this.id_categoria = id_categoria;
this.id_equipo = id_equipo;
InitializeComponent();
}

public Insertar_Equipo(int id_categoria,Progreso formu)
{
this.id_categoria = id_categoria;
this.formu = formu;
InitializeComponent();
}


public void cargar_ciudades()
{
var ciudades = from o in db.vista_ciudades_paises orderby o.Country, o.City select o;
int cont = 0;

foreach (vista_ciudades_paises x in ciudades)
{
cbx_ciudad.Items.Add(x.Country + ", " + x.City);
cont = cbx_ciudad.Items.Count;
formu.barra.Value = cont;
}

}

private void Insertar_Equipo_Load(object sender, EventArgs e)
{

cargar_ciudades();
formu.Close();

}
}

Ya en el segundo form, hace el load y carga las ciudades en el cbx, el maximun del progressbar estaba establecido 129606 que son el nº de registros de la consulta por tanto cada pasada del foreach le pasado el count a la barra para que esta vaya creciendo, una vez acabado el foreach procederá a hacer el close del form anterior teniendo ya todos los datos cargados.

Gracias por vuestra ayuda y espero ke pueda ayudar a alguien con esto!