C# récupérer une valeur

idrissess Messages postés 108 Statut Membre -  
chico200987 Messages postés 856 Statut Membre -
Bonjour,
Après que je clique sur le button1 je peux calculer la valeur K qui se trouve en gras dans le code mais mon problème est comment appeler cette valeur dans une autre Form j'ai essayer de changer private en static mais ça pas marché
voici mon code source est ce que vous pouvez m'aider a changer ce code pour que je puisse appeler la valeur de K dans une autre Form de projet

private void button1_Click(object sender, EventArgs e) //bouton parcourir
{
//parcourir
OpenFileDialog f = new OpenFileDialog();
f.Title = "Choisissez votre fichier";
f.InitialDirectory = @"c:\";
f.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
f.FilterIndex = 2;
f.RestoreDirectory = true;
if (f.ShowDialog() == DialogResult.OK)
{
MessageBox.Show(f.FileName); // parcourir le fichier

textBox1.Text = f.FileName;
string chemin= f.FileName;
// debut de la detection des coordonnées extremes du fichier xls
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + f.FileName + ";Extended Properties=\"Excel 8.0\";"; // nom complet de la connexion
OleDbConnection connection = new OleDbConnection(connectionString);
string cmdText = "SELECT * FROM [Feuil1$]"; // commande (base de données)
OleDbCommand command = new OleDbCommand(cmdText, connection);
command.Connection.Open(); // exécution de la commande
OleDbDataReader reader = command.ExecuteReader();
reader.Read();
reader.Read();

// Initialisation :

if (checkBox1.Checked & !checkBox2.Checked)
{
int k = 0; //compteur des lignes

while (reader.Read())
{
if ((reader[1].ToString() != "") && (reader[2].ToString() != ""))

k++;
}
}
textBox2.Text = k.ToString();
}
}

}//fin bouton parcourir

1 réponse

  1. chico200987 Messages postés 856 Statut Membre 144
     
    Salut,

    Tu peux passer en paramètre ton chiffre K par exemple.

    Pour cela lorsque tu ouvres ton Form2 tu fais :

    Form2 frm = new Form2(k);
    frm.ShowDialog();
    


    Et dans ton constructeur public Form2() de ton fichier Form2.cs tu le modifies comme ceci :

    public partial class Form2 : Form
        {
            int k;
            public Form2(int valeur)
            {
                InitializeComponent();
                this.k = valeur;
            }
         }
    


    Tu auras donc une <b>copie</b> de la valeur de K dans Form2.
    0
    1. idrissess Messages postés 108 Statut Membre 12
       
      Merci de votre réponse .
      J'ai essayé avec ce syntaxe

      public partial class Form2 : Form
      {
      string chemin;
      public Form2(string c)
      {
      InitializeComponent();
      this.chemin = c;
      }

      et Dans la from1 j'ai met
      Form2 f2 = new Form2(chemin);
      f2.Show();

      mais j'ai eu cet erreur " Error 1 The name 'chemin' does not exist in the current context C:\Users\idriss\Documents\Visual Studio 2008\Projects\PFE\PFE\Form1.cs 34 34 PFE"

      est ce que je dois définir aussi le variable "chemin" dans form1
      0
    2. chico200987 Messages postés 856 Statut Membre 144
       
      Salut,

      Oui il faut bien entendu definir aussi chemin dans form1 pour donner ceci :

      //Dans Form1
      string chemin = "C:\"
      Form2 f2 = new Form2(chemin);
      f2.Show(); 
      
      //Dans Form2
      
      public partial class Form2 : Form
      {
      string chemin;
      public Form2(string c)
      {
      InitializeComponent();
      this.chemin = c;
      } 
      
      


      ;)
      0