aminegalai
Messages postés28Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention19 septembre 2009
-
26 mars 2009 à 23:09
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
8 avril 2009 à 20:19
j'ai 2 form, la 1ère est consacrée pour le menu et la deuxième pour mise à jours des factures
sur la 1ère form il y a des picturebox lorsque je veux appeler la 2ème form je dois mettre la propriété du picturebox (visible=false) voila le code:
private void menu_facture_Click(........)
{
pic.visible=false;
...............
frm2 facture = new frm2();
facture.show();
}
mais lorsque je ferme la form facture et je reviens au menu comment on peut mettre le picturebox (pic) à visible
aminegalai
Messages postés28Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention19 septembre 2009 27 mars 2009 à 06:49
merci j'ai essayé avec formclosed avant de poser cette question mais je sais pas comment atteindre le contrôle "pic" dans le code de la form2
merciiiiiiiiiiiiii
aminegalai
Messages postés28Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention19 septembre 2009 28 mars 2009 à 08:48
Merci mais encore impose des problème.
est-il possible de savoir comment déclarer une variable global qu'on peut l'accéder de n'importe qu'elle code source de n'importe form (et syntaxe svp) :
si c'est possible donc je déclare une variable global pour tout le projet et on teste sur cette variable dans le formClosed
------------------------------------------
namespace NomProjet
{
// on déclare ici ou quoi ??????????????????????????
public partial class frm : Form
{
----------------------------------
ou une méthode pour accéder à une contrôle située dans la form1 à partir du code source de la form2
merci pour vos aide
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 28 mars 2009 à 14:06
Je n'ai pas non plus parfaitement compris ce que tu voulais faire, mais je suis parfaitement d'accord avec WishhhMaster. Les événements sont là pour être utilisés.
Les variables globales n'existent pas en C#, puisque rien ne peut exister en dehors d'une classe. Cependant, tu peux créer une variable de classe (mot clé "static") qui pourra aboutir à un résultat similaire :
public class MaClass
{
public static int maVar;
}
public class MaClass2
{
private void MaProcedure()
{
MaClass.maVar = 5;
}
}
Enfin là évidemment, c'est extrêmement résumé. Il faut bien sûr utiliser des propriétés, et non pas la variable directement. Cependant, il ne faut pas utiliser des variables static parce que ça t'arrange, mais parce que c'est cohérent de l'utiliser dans tel ou tel cas. Si tu mises trop sur les variables statiques (ou méthodes statiques), ton programme sera illisible et tu perds tout l'intérêt des classes.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 29 mars 2009 à 13:46
Euh... Il s'agit juste de ma signature.
Ca vaut juste dire "tant que ça ne marche pas, tu réessaies", c'est plus un état d'esprit qu'un bout de code à utiliser :p
aminegalai
Messages postés28Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention19 septembre 2009 2 avril 2009 à 07:29
bonjours :D:D:D
je suis débutant en C#, j'ai crée 2 form la 1ère pour le menu (de type mdi)
et la 2ème form est consacrée pour la gestion des facture
j'ai mis sur la form menu une picture box.
le problème c'est lorsque je veux appelé la form facture je mettre la propriété du picture box à visible =false et lorsque je ferme la form je veux atteindre la propriété visible à true
j'ai essayé par formClosed ------>ne marche pas
j'ai essayé avec ce code ça marche mais lorsque je mis la form menu de type mdi il impose un problème
--------------------------------
public void TraitementForm1()
{
picturebox1.visible=true;
}
public void OuvertureForm2()
{
MaForm2 maForm2 = new MaForm2();
maForm2.Owner = this;
maForm2.Show();
}
//Dans MaForm2
private void ButtonOk_Click(object sender, System.EventArgs e)
{
MaForm1 maForm1 = (MaForm1)this.Owner;
maForm1.TraitementForm1();
}
...
Remarque :
j'ai transformé ce code selon mon besoin et ca marche mais problème avec la form mdi..............
----------------------------------------------------------comment atteindre tout simplement une form menu de type mdi quant trouve sur eu une picturebox et lorsque je fais l'appelle à la 2ém form le picture box devienne visible false et si je ferme la 2ème form le picture box devient visibletrue càd l'image devient visible??????????????
merciiiiii:D:D:D:D:cry:
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 2 avril 2009 à 10:19
"J'ai essayé par formClosed ------>ne marche pas"
Il n'y a pas de raison. Tu as bien vérifié qu'il allait dans la fonction ? Tu as eu une erreur ? Si oui, laquelle ?
"j'ai transformé ce code selon mon besoin et ca marche mais problème avec la form mdi"
Si tu ne nous dit pas quel est le problème, on va avoir du mal à t'aider.
frm_02_menu_principal g = new frm_02_menu_principal();
g.pic.visible=true;
}
g.pic.visible=true --> cette instruction ne s'exécute pas il pointe sur lui mais pas de résultat
2--"j'ai transformé ce code selon mon besoin et ca marche mais problème avec la form mdi impose de problème "
le problème lorsque je fais l'appelle à la form 2 à partir du form menu
je fais
frm_2_facture f = new frm_2_facture();
f.mdiparent =this ; // pour qu'elle devient mdi
// et j'utilise ces 2 instruction il impose des problème
maForm2.Owner = this;
maForm2.Show();
et dans l'autre form "formClosed"
MaForm1 maForm1 = (MaForm1)this.Owner;
maForm1.TraitementForm1();
mon but est de faire dans la form mdi "menu" des images raccourcis comme le windows on trouve des icone raccourcis comme "mes documents" par exemple mais mon problème si je ne mettre pas ces picture box à visible =false les icone s'affichent sur la 2ème form et si je les met à visible =false et lorsque je ferme le form 2 et je reviens au menu les icones reste caché
comment faire svp
merciiiiii
frm_02_menu_principal g = new frm_02_menu_principal();
g.pic.visible=true;
}
g.pic.visible=true --> cette instruction ne s'exécute pas il pointe sur lui mais pas de résultat
Sisi, elle s'exécute. Mais pas sur la bonne fenêtre !
Je résume ce que fait ton code. Quand tu fermes frm_f2, tu crées une nouvelle frm_02_menu_principal (que tu n'affiche pas), puis tu lui dis qu'à l'intérieur de cette nouvelle fenêtre, tu veux afficher pic (mais la fenêtre est cachée, hein).
Donc déjà, la ligne " frm_02_menu_principal g new frm_02_menu_principal();", il faut l'effacer, tu n'as pas à créer d'objet. Et dans ta deuxième ligne, il faut remplacer "g" par une référence à ta fenêtre contenant pic. Probablement "this".>
aminegalai
Messages postés28Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention19 septembre 2009 3 avril 2009 à 07:59
bonjour
si je je met comme vous avez dis :
-------------------------------------------------------
private void frm_f2_FormClosed(object sender, FormClosedEventArgs e)
{
this.pic.visible=true;
}
this---> retourne la form 2 pas la form 1 pour mettre this
-------------------------------------------------------
j'ai trouvé la solution qui vous donnes la solution de mettre la picture box à true et à false (visible)
I-voila les étapes:
1- créer une form 1 ajouter un menu sur la form, une picture box
2- créer la form 2
II-voila le code :
1- dans la form 1 et après remplir le contrôle du menu
private void factureToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Owner=this;
pictureBox1.Visible = false;
f2.Show();
}
2-on crée une méthode dans le code de la form 1 qui a pour but de mettre la picture box à false
public void Pctvisible()
{
pictureBox1.Visible = true ;
}
3- sur la form 2 et avec FormClosed on fait l'accès à la méthode PctVisible de la form 1:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Form1 f1 = (Form1)this.Owner;
f1.Pctvisible();
}
ces codes vous permet de résoudre la propriété visible (true et false) de la picture box mais mon problème si je met la form1 à type Mdi n'accepte pas.
l'instruction ----->f2.MdiParent=this;
dans factureToolStripMenuItem_Click
l'erreur sur
Form1 f1 = (Form1)this.Owner;
f1.Pctvisible();
Question :
Comment faire pour créer la première form de type Mdi qui se trouve sur lui une picture box et au même temps lorsque j'ouvre la form 2 la picture box devient false (c'est simple et résolu) et sur tout lorsque je ferme mon form 2 le picture box devient visible = true ?
voila mon problème tout simplement
merciiiii
Amine Galaï
/*
j=2;
for (i=0; i <j ; i++)
{
Console.WriteLine("Merciiiiiii");
j=i+1;
}
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 3 avril 2009 à 10:39
"Et dans ta deuxième ligne, il faut remplacer "g" par une référence à ta fenêtre contenant pic. Probablement "this"."
"this---> retourne la form 2 pas la form 1 pour mettre this"
J'ai dit "Probablement".
Le plus simple est encore de mettre la méthode "private void frm_f2_FormClosed(object sender, FormClosedEventArgs e)" dans ta form1, et non dans ta form 2.
aminegalai
Messages postés28Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention19 septembre 2009 8 avril 2009 à 19:29
salut;
lorsque j'utilise ce code il impose une erreur la voila :
le code :
-------------------------------------------------------------
private void form1_bouton_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.FormClosed += new EventHandler (form2_Closed);
pic.Visible = false;
form2.Show();
}
private void form2_Closed(object s, EventArgs e)
{
pic.Visible = true;
}
----------------------------------------------
Erreur 1 Impossible de convertir implicitement le type 'System.EventHandler' en 'System.Windows.Forms.FormClosedEventHandler'
comment on peut la résoudre svp????????????????????
merciii
Amine Galaï
/*
j=2;
for (i=0; i <j ; i++)
{
Console.WriteLine("Merciiiiiii");
j=i+1;
}
*/