Controle d'une progressbar à partir d'une autre form

cs_Mrmario Messages postés 4 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 19 mai 2008 - 16 mai 2008 à 15:35
cs_Mrmario Messages postés 4 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 19 mai 2008 - 19 mai 2008 à 08:39
Bonjour,

   Je conçois actuellement une petite application, et je bloque sur un probleme. J'ai une application principal de type formulaire, et apres un appel quelconque, (appuis sur un bouton par exemple). J'aimerais appeler une autre forme ou se trouve une progressbar et pourvoir la controler, avec des valeurs issus de ma forme principal.

   Etant débutant en c# j'aurais aimé savoir ce que je dois utiliser pour réaliser cela, des exemples concrets et accessible. 

   Ma solution actuelle est de créer une class public, avec laquel j'assigne des valeurs static qui feront la jonction d'une forme à l'autre. Mais ça ne marche pas des masses.

   Je vous laisse le code de ma forme ou se trouve ma progressbar et un morceau du code de ma forme principal ou j'appel la progressbar.

using

System;
using

System.Collections.Generic;
using

System.ComponentModel;
using

System.Data;
using

System.Drawing;
using

System.Text;
using

System.Windows.Forms;
namespace

Tests{

public
partial
class
Load_Form :
Form{

public Load_Form(){

InitializeComponent();

}

// définit l'objet qui controle la progresse barre

transfert_pos_chargement Chgmt_pos =
new
transfert_pos_chargement();

private
void label_charge_data_Click(
object sender,
EventArgs e){

}

private
void Load_Form_Load(
object sender,
EventArgs e){

// parametre la progresse barre datas

this.progressBar_datas.Maximum = Chgmt_pos.get_max_value();

this.progressBar_datas.Minimum = Chgmt_pos.get_min_value();

this.progressBar_datas.Step = Chgmt_pos.get_pos_value();

this.progressBar_datas.PerformStep();Progressbar_datas_changed();

}

public
void Progressbar_datas_changed(){

// Donne les valueurs à la progresse barre

this.progressBar_datas.Step = Chgmt_pos.get_pos_value();

this.progressBar_datas.PerformStep();}

}

// Class permettant le transfert de données pour affichage de la barre de défilement

public
class
transfert_pos_chargement{

public
static
int pos = 0;

public
static
int Max_Value = 0;

public
static
int Min_Value = 0;

public
static
string Text_label =
"";

public transfert_pos_chargement() { }

// Assigne et recupere la valeur de la position

public
int get_pos_value(){

return (pos);

}

public
void set_pos_value(
int value){

pos = value;

}

// Assigne et recupere la valeur de la valeur max

public
int get_max_value(){

return (Max_Value);}

public
void set_max_value(
int value){

Max_Value = value;

}

// Assigne et recupere la valeur de la valeur min

public
int get_min_value(){

return (Min_Value);}

public
void set_min_value(
int value){

Min_Value = value;

}

// Assigne et récupere la valeur du champ label info

public
string get_text_label_value(){

return (Text_label);}

public
void set_text_label_value(
string value){

Text_label = value;

}

}

}

Et voici le morceau de mon appel dans mon code principal :

// Définition des objets qui gere la barre de défillement

Form chargement =
new
Load_Form();

transfert_pos_chargement Pos_Cgmt =
new
transfert_pos_chargement();chargement.Show();

DataGridViewRowCollection Rows =
this.dataGridView_txt_datas.Rows;Pos_Cgmt.set_max_value(Rows.Count - 1);

Pos_Cgmt.set_min_value(1);

Pos_Cgmt.set_pos_value(1);

for (
int i = 0; i < 100; i++)
// uniquement à titre d'exemple{
      Pos_Cgmt.set_pos_value(i);

}

chargement.Refresh();
Je vous remercis par avance.

Je suis le vent et le vent est immortel

2 réponses

leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
16 mai 2008 à 16:45
ton formulaire principal doit lever un event que le formulaire contenant la progressbar interceptera. Cet event prend en argument la nouvelle valeur de la progress bar. dans le handler d'event dans le formulaire contenant la progressbar, il ne te reste qu'a faire la traitement graphique. Bidou a publié une source dont je n'ai pas le lien en tete sur la communication entre deux formulaire via events
0
cs_Mrmario Messages postés 4 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 19 mai 2008
19 mai 2008 à 08:39
Ok merci pour l'information, je vais essayer de chercher ça.
J'avous n'être pas encore bien calé dans le domaine. :p

Je suis le vent et le vent est immortel
0
Rejoignez-nous