Help pour form

angel2610 Messages postés 12 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 9 février 2007 - 30 mars 2005 à 10:53
angel2610 Messages postés 12 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 9 février 2007 - 31 mars 2005 à 10:58
Lorsque j'appuye sur un bouton d'une form je voudrai pouvoir appeler une fonction d'une autre form.
NB: avec des parametre pour la fonction
merci
ca fait 2 jour que je cherche

12 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
30 mars 2005 à 11:16
Il suffit d'avoir une référence de la class (form) dans la form ou tu veux appeler ta méthode; et s'assurer bien sur que la méthode en l'occurance est bien public.

// Dans ta form ou t'as le boutton
refForm.MyMethod(myArguments);

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
30 mars 2005 à 11:20
Conceptuellement faire çà c'est crade mais bon.

Ce que tu peux faire c'est mettre ta méthode en static dans la form2

et apres tu fais :
form2.Maméthode

::|The S@ib|::
MVP C#.NET
0
angel2610 Messages postés 12 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 9 février 2007
30 mars 2005 à 11:35
merci mais je crois ne pas avoir bien compris.





en fait ce que j'ai c'est un fenetre avec un datagrid et un bouton recherche.


quand je clique sur recherche une form recherche s'ouvre et la je rentre une partie du nom que je veu rechercher et qaund je clique sur ok je voudrai que ma fonction soit appeler. en sachant que celle si se trouve dans ma premiere form.





ou alors si je met la fonction dans la form recherche savoir comment je peut remplir le datagrid qui ce trouve sur la premiere form.





merci beaucoup :-)
0
angel2610 Messages postés 12 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 9 février 2007
30 mars 2005 à 11:37
voici ma fonction

static
void rechercher_exposant(
string rech)

{


string requete;






string MaConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=gdf.mdb";


requete = "SELECT Num_Exposant as NUM , RaisonSocial_Exposant as Raison_Social,Vedette_Exposant as Vedette, Nom_Exposant as Nom, Prenom_Exposant as Prenom FROM exposants Where nom_Exposant like'%" + rech + "%';";



DataSet MonDataSet;



OleDbDataAdapter MonDataAdaptater;



OleDbConnection Conn =
new
OleDbConnection(MaConn);


MonDataAdaptater =
new
OleDbDataAdapter(requete, MaConn);


MonDataSet =
new
DataSet();


MonDataAdaptater.Fill(MonDataSet, "Recherche");


dataGridView1.DataSource = MonDataSet.Tables["Recherche"].DefaultView;


dataGridView1.AutoSize =
true;


label_Resultat.Text =
Convert.ToString(dataGridView1.RowCount - 1);




}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
30 mars 2005 à 12:09
Crade ??? pourquoi?
Déclarer la méthode static, ça peut poser des problèmes dans certain contexte non ?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 mars 2005 à 12:51
Tu as qu'a utiliser la propriété DialogResult, en ouvrant ta 2eme form de façon modale.

Petit exemple : La premier form appelle la 2eme. Quand on clique sur le
bouton de celle ci, une méthode de la premiere form est appelée. Tu
peux faire de meme en adaptant ton code (tu as juste a récuperer le
parametre que tu souhaites)




namespace DialogRslt

{



public class Form1 : System.Windows.Forms.Form

{

Button b1 = new Button();

public Form1()

{

InitializeComponent();

}



private void DisCoucou()

{

MessageBox.Show("coucou");

}



private void InitializeComponent()

{

b1.Click += new EventHandler(b1_Click);

this.Controls.Add(b1);

}



private void b1_Click(object sender, EventArgs e)

{

Form2 f2 = new Form2();

if(f2.ShowDialog() == DialogResult.OK) DisCoucou();

}



[STAThread]

static void Main()

{

Application.Run(new Form1());

}

}



public class Form2 : Form

{

Button b1 = new Button();

public Form2()

{

InitializeComponent();

}



private void InitializeComponent()

{

b1.Click+=new EventHandler(b1_Click);

this.Controls.Add(b1);

}



private void b1_Click(object sender, EventArgs e)

{

this.DialogResult = DialogResult.OK;

this.Close();

}

}



}



Mx
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 mars 2005 à 13:04
Bidou, je crois qu'il dit que c'est crade car il me semble que ce n'est pas Thread-safe. (2 forms = 2 threads créés non ?)

Dans son cas, le mieux serait quand meme d'utiliser le couple délégués / évènements, ca deviendrait propre.

Mx
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
30 mars 2005 à 13:33
C'est ce qui m'est venu à l'esprit après coup aussi.
Mais est-ce vraiment cette raison là?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
30 mars 2005 à 13:34
Bah crade parceque tu ne met pas de traitement dans une form, le formulaire est seulement une façade. Le modèle, le controller et la vue doivent être distincts. + de modularité , + propre, + fonctionelle, + objet

::|The S@ib|::
MVP C#.NET
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
30 mars 2005 à 13:38
Question de point de vue bien entendu.

L'utilisation de délégate est un bon compromis dans ce cas

::|The S@ib|::
MVP C#.NET
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 mars 2005 à 14:52
Non mais jpense que tu as raison TheSaib.

Enfin maintenant, si la personne qui a posé la question débute en C#,
la version de Bidou lui permet de faire qqchose simplifié a l'extreme.

Mx
0
angel2610 Messages postés 12 Date d'inscription lundi 28 mars 2005 Statut Membre Dernière intervention 9 février 2007
31 mars 2005 à 10:58
merci pour ce petit truc...

j'ai fait autrement j'ai inclus ma recherche dnas la meme form now.
0
Rejoignez-nous