Problème pour passage de parametre d'un Form à l'autre, en C sharp [Résolu]

Signaler
Messages postés
14
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
12 avril 2010
-
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011
-
Coucou a tous,
voila je suis nouveau sur le forum et je ne sais pas vraiment si je suis au bonne endroit pour poser ma question..

Alors voila, j'utilise une application windows forms, dans lequel j'ai deux forms,
Form1 et Form2, je vais essayé d'être le plus clair possible, j'ai rajouter un composant à visual c# qui me permet de me connecter à un server et de visualiser en direct se que voit la caméra brancher sur se server.

Se composant me donne deux cadre, un s'appelant axliveX1 placé dans le Form1, qui me permet de voir en direct et un cadre appelé axrpbX1 placé dans le Form2 qui lui me permet de visualiser les vidéos enregistré sur la base de donné d'un server. Pour se faire je dois entrer dans c'est deux cadres quelques paramètres correspondant au server comme axliveX1.username, axliveX1.password, axliveX1.ipadress et de même pour axrpbx1.username.....

Mon but et qu'à partir d'un bouton nommé "replay", placé dans Form1 je voudrais afficher le Form2, et envoyer en même temps les valeurs de axliveX1 ( username password et ipadresse) dans axrpbx1.

Je débute vraiment en C sharp et je bloque pour passé les paramètres de l'un a l'autre... si quelqu'un pouvait me donner un petit coup de pouce, cela m'aiderai beaucoup...

19 réponses

Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
il suffit d'ajouter les propriétés dans ta Form2
public string UserName {get; set; }
public string Password {get; set; }
public string IpAdress {get; set; }


Ensuite quand tu clique sur ton bouton
Form2 f = new Form2();
f.UserName = axliveX1.UserName;
f.Password = axliveX1.Password;
f.IpAdress = axliveX1.IpAdress;
f.Show();
Messages postés
14
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
12 avril 2010

ben voila, une semaine que j'me prend la tête la dessus et en une heure a peine j'ai ma réponse... merci beaucoup GG29 ca marche du tonner
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
De rien
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

Salut,

j'ai presque le même problème, mais je ne sais pas comment renvoyer mes parametres
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
Form2 f = new Form2();
f.UserName = axliveX1.UserName;
f.Password = axliveX1.Password;
f.IpAdress = axliveX1.IpAdress;
f.ShowDialog();

string userName = f.UserName;
...

Voila comment on récupère les valeurs.
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

En effet, je voudrais afficher le résultat d'une requête SQL par un clic de bouton se situant sur ma form2, résultat qui s'afficherait dans une form1.

Voici un bout de code:

Propriétés dans form1:

form2 f2 = new form2();

if (MonDialog == DialogResult.OK)
{
AJOUTE();
}

public void AJOUTE()
{
//label9.Visible = true;
f2.ODatagrid.Visible = true;
f2.panel5.Visible = false;

try
{
CmdSelect = new SqlCommand("select * from AJOUT_ATOLL", Monotrol.MaConnect);
CmdSelect.CommandType = System.Data.CommandType.Text;
MonDataAdapter = new SqlDataAdapter(CmdSelect);
ds.Tables["IdentitAtoll"].Clear();
MonDataAdapter.Fill(ds.Tables["IdentitAtoll"]);
CM = (CurrencyManager)BindingContext[ds.Tables["IdentitAtoll"]];
f2.ODatagrid.DataSource = ds.Tables["IdentitAtoll"];
CM = (CurrencyManager)BindingContext[ds.Tables["IdentitAtoll"]];
}
catch (Exception xcp)
{
MessageBox.Show("Impossible de Récupérer les données", xcp.Message);

}
}

ma méthode d'exécution de la requête est AJOUTE().

Voila, je voudrais donc que le resultat de cette requête soit affiché dans form2 qui contient un datagridview ODatagrid.

cordialement
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

ma form1 est en effet une boite de paramètre avec des checkbox.
Une fois des éléments cochés, on click sur un botuon VALIDER
qui exécute la requête.
Et le résultat se veut être affiche dans form2 qui est déjà ouvert je précise.
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
Il suffit dans ta form2 d'avoir une référence sur ta form1. Il suffit ensuite de lire les propriétés dont tu as besoin.
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

jai compris l'idee, mais je ne sais toujours pas quel genre de reference utiliser dans form1.

Pour l'execution et l'affichage d'une requete, je ne vois pas vraiment.

j'ai essaye avec f2.Show()
mais il ouvre une nouvelle form2 avec le resultat que j'attend. Moi je veux pourtant que le resultat s'affiche dans la form2 deja ouverte
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
Si ta fenêtre est déjà ouverte tu peux faire si je ne m'abuse
f2.Visible = true;
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

ca ne marche pas !
C'est le meme resultat ! une nouvelle form2 s'ouvre ...
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
ta form1 contient bien la référence de ta fenêtre ouverte ?
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

Oui ! Mais comment s'en assurer ?
ma form1 contient bien la reference :

form2 f2 = new form2();

form2 etant deja ouverte ....
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
form2 f2 = new form2();

ca crée une nouvelle instance de form2 (une nouvelle fenetre si tu préfère)
Si j'ai bien compris tu ouvre ta form1 à partir de ta form2. Dans ce cas tu ajoute une propriété de type form2 dans ta form1.
form1 f = new form1();
f.Form2 = this;
if(f.ShowDialog() == DialogResult.OK)
{
// ce que tu veux
}

Avec ca la form2 référencé est bien la fenêtre déjà ouverte.
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

franchement, je ne comprend rien !

oU DOIS JE CREER LES REFERENCES ?
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

Au commencement :

- Depuis form2, j'ouvre form1
- Dans form1, apres parametres valider, je dois ouvrir form2
qui va m'afficher les resultats de form1.
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
Tu dois avoir une référence vers la form2 dans la form1. Cette référence doit être initialisé avec la valeur de la fenêtre déjà ouverte.

Dans form1
public Form2 {get; set; }


dans form2 (à l'endroit où tu veux ouvrir ta form1
form1 f = new form1();
f.Form2 = this;
f.show();


Comme ca form1 à la bonne référence
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

Grand merci pour ton aide !

Je vais continuer un peu plus tard.

Je crois que j'ai la tête très chargée....

A demain matin certainement
Messages postés
79
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
22 juin 2011

Salut !

J'ai tout essayé, mais rien ne marche !!!!
Je sais pas pourquoi