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

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
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
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