begin process at 2012 02 10 09:34:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Acceder aux proprietes d'une fenetre a partir d'une autre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Acceder aux proprietes d'une fenetre a partir d'une autre

vendredi 24 décembre 2004 à 09:29:57 | Acceder aux proprietes d'une fenetre a partir d'une autre

akito06

Bonjour a tous et a toutes

Apres avoir bien exploré de nombreux post du forum, je ne trouve pas de solution a mon probleme.

Le probleme : Application MDI
Une forme Main crée une Form1
La Form1 crée une Form2

Je voudrais pouvoir acceder aux propriétés de Form1 a partir de Form2
Ex : dans Form2 : Form1.Enabled = true;

Je viens du monde Visual Basic, je commence donc a comprendre les mecanisme du C++/C#.

J'ai lu des methodes conscistant a passer en ref les attribut a modifier mais cette solution n'est pas satisfaisante dans mon cas.

A moin de passer carement la Form1 en ref dans le constructeur de la Form2. Mais je n'y suis pas arriver...

Et ce probleme ne resoudrait pas un acces a une troisieme fenetre
ex Form1 -> Form 2 -> Form3 donc Form3 ne peut pas acceder a Form1.

Voila, j'espere avoir été assez clair. J'espere qu'il est possible d'acceder aux propriétés aussi facilement qu'en VB. Malgres qu'il soit permissif, VB reste un langage souple sur certain point non negligeable.

Merci par avance et bonnes fetes a tout le monde
vendredi 24 décembre 2004 à 10:22:35 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

digital3d

Salut, je viens aussi du monde Visual Basic, en C# tu dois instancier une form absolument même si elle existe déjà, une autre form ne peux avoir accès que si tu reinstancie ta form, par exemple:

j'ai deux forms:
Form1
Form2 + un label dedans comme nom "label1"

ils sont toutes les deux visibles avec plein de trucs dedans, si de Form1, tu veux reprendre certaines choses de Form2, tu dois faire ceci:

//Je connais le nom du control que je veux utiliser, il s'apelle "label1"
//Je suis dans la Form1 et j'instancie la Form2
Form frm = new Form2();
//Je montre la Form2, il y a bien un label dedans
frm.Show();

//J'instancie un nouveau control a partir de la Form2 et je recherche le control avec le nom "label1"
Control ctl = frm.GetNextControl(new Control("label1"),true);
//J'affiche dans le titre de ma Form1 le texte du Label de ma Form2
this.Text = "Texte prit de la Form2 et mis dans le titre: " + ctl.Text;



En fait en C#, tu dois tout instancier, tout les contrôles appartiennent à la form elle-même et ne peux pas être appelé ailleurs, j'espère que j'ai su t'aider
vendredi 24 décembre 2004 à 10:31:23 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

akito06

Merci pour ta reponse!

Je suis d'accord avec toi. Dans la form1, j'arrive a acceder au propriété de la from2 puisque je l'ai instancié ici meme.
Mais je n'arrive pas a faire l'inverse.

Avec la form1, j'instancie la form2 et je la show()

Mais si dans la form2 j'instancie la form1, j'obtien alors une nouvelle instance de la form1 et les valeur que je modifie seront appliqué a cette nouvelle instance.

Merci pour ton aide
vendredi 24 décembre 2004 à 10:35:15 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

Arthenius

Membre Club
ou alors tu met ton label1 en public et tu fais depuis form1 un truc style :

form2 f = new form2();
f.show();


....


MessageBox.Show(f.label1.Text);

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
vendredi 24 décembre 2004 à 10:40:15 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

digital3d

En mettant Public un label, je ne la vois pas ? Es tu sur de ton code ?
vendredi 24 décembre 2004 à 10:40:15 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

akito06

Pour etre plus clair je vais mettre le code :

Dans ma 1ere form nommé cmd_etat_frm :
void Btn_livrerClick(object sender, System.EventArgs e)
{

lvr_frs_frm Lvr_frs_frm = new lvr_frs_frm () ;
Lvr_frs_frm.MdiParent = this.MdiParent;
Lvr_frs_frm.Show();

}


Dans ma deuxieme form nommé lvr_frs_frm si je fais cmd_etat_frm.Enabled = true;
cela ne marche pas

Je trouve qu'a ce niveau, vb etat plus adapté

Merci pour ton aide
vendredi 24 décembre 2004 à 10:48:29 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

digital3d

VB n'est pas plus adapté, il était facile mais insecurisant, en C# tout a été repensé, TOUT EST DU CODE, en VB une form était une form, tu ne pouvais rien faire d'autres qu'utiliser les paramètres standard, en C# une form est du code, tu peux faire des bords rond, la redessiner, tout est dans ton code, et ce que tu vois à l'écran n'est que le résultat de ton code, c'est plus profond.

Il est vrai que ca serait super de faire appelle comme en VB à un control d'une autre form mais ici vaux mieux le parametrer tout toi même, tu fais une bête fonction qui te renvois le control que tu veux:

private void Form1_Load(object sender, System.EventArgs e)
{
Form frm = new Form2();
frm.Show();

Control ctl = GetThisControl(Form2,"label1");
this.Text = ctl.Text;
}

public static Control GetThisControl(Form frm, string ControlName)
{
Control ctl = frm.GetNextControl(new Control(ControlName),true);
return ctl;
}
vendredi 24 décembre 2004 à 10:49:54 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

akito06

C'est donc en fait dans la From2 que je n'arrive pas a acceder a la Form1

L'inverse marche
vendredi 24 décembre 2004 à 10:51:48 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

Arthenius

Membre Club
ou plus classe tu fais une propriete sur form2 qui te retourne le text de label1
:


public string Get_Label1Text
{
get
{
//permet de recuperer la valeur de label1.text
return label1.Text;
}
set
{
//permet de definir le text de label1 sur form2
this.label1.Text = value;
}
}


et dans fom1 tu fais :
Messagebox.Show(form2.GetLabel1Text);

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
vendredi 24 décembre 2004 à 10:53:35 | Re : Acceder aux proprietes d'une fenetre a partir d'une autre

akito06

Ce que tu dis est vrai, depuis la form1 j'accede a la form2
C'est ce que montre ton code.
Mais dans la form2 cela ne marche pas.

Car si dans la From2 je fais
From frm1 = new Form1();
Alors j'instancie une nouvelle From1...

Merci

1 2 3

Cette discussion est classée dans : partir, fenetre, form2, acceder, form1


Répondre à ce message

Sujets en rapport avec ce message

Acceder a un textbox de la form1 depuis la form2 [ par warenbe ] bonsoirje voudrai acceder a un textbox contenu dans la form1 depuis la form2j'ai donc essaye de declarer le textbox avec public et non privateet depui Ouvrir une form à partir d'une autre [ par CannibalWarrior ] Bonjour,Je débute en C# (depuis hier). Auparavant je développais en Borland C++. Je m'arrache les cheveux depuis un moment sur un problème qui est san communicatin entre deux fenêtres [ par juguinfo ] salut tout le monde: mon problème est le suivant!j'ai 2 fenêtres form1 et form2, 1) comment je peut afficher form2 à partir de form1, et de reafficher comment faire un lien entre 2 fenetre avec C# [ par ami7 ] bonjour, je débute avec microsoft visual C#2008 j'ai crée une premiére fenetre Form1 et j'ai fait add windowsform pour créer une deuxiéme Form2 mon comment faire grisé un bouton d'un autre form a partir du form1 [ par poomen ] je veux faire grisé un bouton de la form2 a partir d'un bouton de la form 1 , aidezzz moiii !! :D 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 Action dans une autre fenêtre [ par Nelfasis ] Bonjour,Alors voilà, au bout d'un bon moment de recherche, je décide de finalement poser ma question.J'ai un problème tout simple mais je ne trouve pa problème pour passage de parametre d'un Form à l'autre, en C sharp [ par andy2501 ] 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'uti Chemin de fenetre à partir du handle ?? [ par riadhesiee ] Bonjour, Je suis entrain de développer une application en Csharp (console application), elle permet de détecter les fenetres ouvertes (celles de la ba


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales