Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : passer simplement une variable entre 2 forms [ Mono / Général ] (adnotlegland)

jeudi 28 février 2008 à 23:19:52 | passer simplement une variable entre 2 forms

adnotlegland

Bonjour à tous,

bon ca fait 24h que j'essaye de passer une variable d'une form à une autre et je ne comprends pas !
J'ai beaucoup chercher et la facon la plus simple sur laquelle je suis tombé c'est de passer par les accesseurs mais voilà ca marche pas....
C'est pourtant tres simple: une form1 avec une textbox1 et un bouton, et une form2 qui s'ouvre quand je clique sur le boutton et qui contient juste une textbox2, ainsi je voudrais recuperer le texte de la textbox1 dans la textbox2.

bon le code de la form1 :

using

System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace test
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
Form2 frm2 = newForm2();
frm2.ShowDialog();
}
publicstring retour
{
get
{
return textBox1.Text;
}
}
}
}
et celui de la form2 :


using

System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace test
{
publicpartialclassForm2 : Form
{
public Form2()
{
InitializeComponent();
}
privatevoid Form2_Load(object sender, EventArgs e)
{
textBox1.Text = form1.retour(); \\ erreur : Erreur 1 Le nom 'form1' n'existe pas dans le contexte actuel 

}
}
}

Si vous pouviez m'éclairer de vos lumieres sur ce probleme de POO je vous promets un gros cheque ou au moins de vifs remerciements

vendredi 29 février 2008 à 08:04:10 | Re : passer simplement une variable entre 2 forms

SharpMao

Membre Club
Réponse acceptée !
Hello,

C'est normal, il ne peut pas connaître form1 si tu ne lui donne pas cette variable. Essaie comme ça :

privateForm1 form1;

private Form2()
{
InitializeComponent();
}

public Form2(Form1 f1):this()
{
form1 = f1;
}


Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

vendredi 29 février 2008 à 09:27:54 | Re : passer simplement une variable entre 2 forms

adnotlegland

ben j'avais capté qu'en lui donnant form1.retour() > form1 n'est pas le nom d'une instance mais du "moule" donc ca peut pas marcher mais lorsqu'on lance le programme, form1 est forcément instancié donc comment connaitre le nom de l'instance qui s'affiche afin de le donner à form2 ?

Bon sur papier ma question n'est peut-etre pas tres clairalors si tu pouvais au moinsm'expliquer où placer ce bout de code ce serait sympa. Là en fait je comprends pas trop ce que ca fait et où placer tout ca ....on surcharge Form2() ? 

merci pour les precisions et cette lueur qui scintille tout au loin au bout du tunnel  


vendredi 29 février 2008 à 09:54:38 | Re : passer simplement une variable entre 2 forms
vendredi 29 février 2008 à 11:18:19 | Re : passer simplement une variable entre 2 forms

adnotlegland

En general je cherche avant de poster, j'etais tombé dessus mais ca me plaisait pas trop, j'ai trouvé plus simple :

bon le code de la form1 :

using

System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace test
{
publicpartialclassForm1 :
Form
{
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
Form2 frm2 = newForm2(this);
frm2.ShowDialog();
}
publicstring retour()
{
return textBox1.Text;
}
}

et celui de la form2 :

using

System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form2 : Form
{
privateForm1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 f1):this()
{
frm1 = f1
}
private void Form2_Load( object sender, EventArgs e)
{
textBox1.Text = frm1.retour();
}
}
}

Je pense que c'est quand meme le moins lourd qu'en pensez vous ?? et  merci beaucoup SharpMao de m'avoir mis sur la voie


vendredi 29 février 2008 à 12:35:03 | Re : passer simplement une variable entre 2 forms
vendredi 29 février 2008 à 14:44:01 | Re : passer simplement une variable entre 2 forms

adnotlegland

Quoi lol ? je passe à peine du VB au C#, si je dis des conneries ca serait cool de me reprendre,  ici http://www.csharpfr.com/codes/PASSAGE-PARAMETRES_26735.aspx ca me semblait pas tres clair, alors que la solution sur laquelle je me suis aiguillée c'est tres concis et sans fioriture. On te file un truc pour débutant qui est censé te montrer un truc tres tres tres basic et on te met des structures et des delegués, okay si tu veux pas faire de la POO tu fais pas du CSharp mais bon pourquoi mettre ca dans un programme qui est censé expliquer à un pauvre type comment juste passer un parametre d'une form à une autre ? Enfin je sais pas quoi  


vendredi 29 février 2008 à 14:45:55 | Re : passer simplement une variable entre 2 forms

Neo020585

Membre Club
Réponse acceptée !
Si tu ne veux passer qu'un seul paramètre, il est plus simple de faire ceci :

*********
* Form1 *
*********
private Form1()
{
    InitializeComponent();
}
private void button1_Click( object sender, EventArgs e)
{
    Form2 frm2 = new Form2 ( textbox1.Text );
    frm2.ShowDialog();
}



*********
* Form2 *
*********

private Form2()
{
    InitializeComponent();
}

public Form2( String value)
{

    textbox1.Text = value;
}

"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein


vendredi 29 février 2008 à 15:15:48 | Re : passer simplement une variable entre 2 forms

bubbathemaster

Et puis rappel toi qu'une form n'est qu'une classe comme une autre, tu peux tout à fait bidouiller son constructeur à ta convenance, et en particulier lui passer en argument une autre form.

vendredi 29 février 2008 à 15:33:53 | Re : passer simplement une variable entre 2 forms

adnotlegland

ha ben vi ca le fait ça , c'est bien sympathique ce petit code, donc en passant "this" t'as acces à tout ce qui est public de la form1 sinon tu peux passer n'importe quelle propriété à sa place et ca reduit le code....Et sinon ca existe pas des vrais cours au lieu de casser les coucougnettes au gens sur les forums ??



Cette discussion est classé dans : system, form2, using, passer, form1


Répondre à ce message

Sujets en rapport avec ce message

Récupérer des variables d'une Form1 à une Form2 [ par Gargantuass ] Bonjours à tous,voilà j'ai un petit problème qui est le suivant :j'ai une première fenêtre Form1 qui affiche 3 boutons si je clique sur un bouton une afficher le contenue d'un textbox [ par cliantusse ] cliantusse Bonjour,j'ai deux forms, la 1ere contient un  textbox et un label, la 2eme c message d'erreur [ par dorine82 ] salut à tous,j' ai ecrit un code qui devrait pouvoir lire mon fichier et le mettre dans un tableau mais je recois un message d' erreur.mon fichier est Passer d'une form a une autre :s [ par wally88 ] Bonjour, alors j'ai vraiment du mal mais je n'arrive pas a passer d'une form a une autre. Dumoin afficher la form2 depuis un bouton placer sur la form [C#][DirectShow] Capturer flux video [ par mecano14 ] Bonjour, j'utilise le code suivant pour afficher le flux video d'une webcam dans un pictureBoxDans le code en dessous on utilise un panel mais c'est e application qui freeze [ par warenbe ] Bonjourj'ai un probleme avec une application...je veux faire un petit serveur qui fonctionnerai en TCPil marche mais mal: je ne peux pas le fermer... Initialisation de direct3d : problème [ par araxor ] Bonjour à tous. J'ai décidé de me lancer dans direct3D. J'utilise visual studio 2005. J'ai suivi un tutorial pour l'initialisation. J'ai essayé de com Passer variable de Form1 à Form2 [ par petitelarve ] Bonjour à tous ! J'ai une MainForm. Suite au click sur un bouton je veux passer une String dans ma form2 ki souvre ... Dans MainForm : void BTValidC Passer paramètres de Form2 vers Form1 [ par Leucistic ] Bonjour, Je suis débutant en C# (et langage objet), et après plusieurs recherches sur le site et ailleurs, je n'ai rien trouvé qui me convienne.J'ai l Erreur : No suitable method found to override [ par khaoula85 ] Bonjour à toutes et à tous,J'essaie d'utiliser une procédure stockée dans une application Windows Forms avec C#, mais au moment de la compilation, on


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,780 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.