RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 passage de valeur dans une autre form

Forum : CSHARP (C#)
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ CSHARP (C#)

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2] [3]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM CSHARP (C#)

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2876
Message
#153365
Posté le 23/05/08 à 11:00
Salut !

Déboggueur dit :
C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\Form2.cs(17): Le mot clé new est requis sur 'SuiviClient_DistribInfo.Form2.NumInter', car il masque le membre hérité 'SuiviClient_DistribInfo.NouvelleIntervention.NumInter'

C'est pourtant clair... Sans même voir ton code, je dirais que ta classe NouvelleIntervention contient un membre (public ou protected au moins en principe) nommé NumInter. Il ne faut donc pas que tu en redéclare un dans cette classe Form2.

Déboggueur dit :
C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\Form2.cs(82): Le type ou le nom d'espace de noms 'NvleInter' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

Cette erreur t'indique que le compilo ne trouve pas ta classe (apparemment statique) NvleInter... et il t'indique donc que tu as du oublier d'ajouter l'espace de nom à employer dans ton fichier (faudrait ajouter un using MonEspace au début du fichier, où MonEspace est l'espace de nom contenant la classe NvleInter).

Voila pour tes deux erreurs...

Quant aux composants qui s'affichent alors que tu dis qu'ils ne devraient pas, ben si, il doivent s'afficher d'après ton code.
Regarde ce qui se passe :
  • tu crée une fenetre NouvelleIntervention contenant une TextBox et une ComboBox (nommées A et B pour simplifier)
  • tu hérites cette Form dans une deuxième, nommée Form2
  • mais tu ne dis à aucun moment de ne pas afficher A et/ou B, du coup, par principe même de l'héritage, ils s'affichent.

Si tu veux qu'ils ne s'affichent pas, alors l'héritage n'a aucun intéret. En effet, le seul intéret de faire hériter une Form d'une autre, c'est justement que tu va conserver tous les composants en place... Un héritage de Form fait dans le seul but de récupérer plus facilement les données d'une autre Form et changeant beaucoup d'apparence est très fortement déconseillé. Je dirais même que c'est barbare (Smiley).

Est ce que j'ai été clair ? Smiley

Si tu veux récupérer des données depuis une Form1 alors que tu viens d'ouvrir une Form2, c'est pas bien difficile du tout (j'ai même consacré deux chapitres la dessus dans l'un de mes tutos pour bien voir les différentes méthodes)... Si tu veux le faire autrement que comme tu es parti, ben tu peux toujours demander, je serai ravi de t'expliquer comment faire. Smiley
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

loicDu28
Nouveau membre
Inscrit : 15/04/2008
Messages : 24
Message
#153370
Posté le 23/05/08 à 11:32
Bonjour,

merci pour ta réponse Czayfaboo . Cela m'a aidé pour y voir plus clair.

Ben moi en faite je souhaiterais réaliser une deuxième form que j'imprimerais ensuite, je m'explique : à partir d'un bouton de ma première form("NouvelleIntervention") j'ouvrirai la deuxième form qui sera compléter des données de la première form mais juste des données et placé autrement c'est à dire que je veux plus que des labels et non des comboBox dans ma deuxième forms. puis qu'ensuite, la deuxième form, une foi ouverte ben qu'elle s'imprime.
Pour l'impression, aucun souci je sais faire, je voudrais simplement savoir comment je peux faire pour que mes données de ma première forms, se retrouve dans ma deuxième, dans des labels....

Merci d'avance pour ton aide!!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2876
Message
#153392
Posté le 23/05/08 à 15:31
Eh bien par exemple, voici une solution théorique (aucun code) qui marche très bien :

Tu crées une nouvelle Form, complètement indépendante de la première. Tu places tous les composants dessus...

Lorsque tu cliques sur le bouton de ta première Form, tu créées la seconde, comme prévu. Mais avant de l'afficher (avec Show ou ShowDialog), tu passes toutes les données par une fonction ou une propriété qui appartient à ta deuxième Form.

La encore, il y a différentes façons de faire pour la fontion ou la propriété.
Déjà, si tu choisis de passer par une propriété, il faudra que tu lui passe une classe... Cette classe devra être de ton cru et contenir toutes les données de ta Form n°1 (est ce que tu me suis ?)...
Si tu choisis la fontion, celle-ci devra posséder autant de paramètres que de valeurs à afficher dans la Form 2. Ta fonction aura alors pour but de remplir les labels et autres composants de ta Form 2 avec les valeurs que tu lui auras passé depuis ta Form 1.

Simple non ?

Dis moi si y'a quelque chose de pas clair dans mes explications.
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

loicDu28
Nouveau membre
Inscrit : 15/04/2008
Messages : 24
Message
#153394
Posté le 23/05/08 à 15:34
Ok, je pense que la plus simple c'est avec la fonction.

Mais peux tu stp me mettre un exemple ?? (car généralement je comprend plus facilement par des exemples.

Merci beaucoup pour tout!!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2876
Message
#153396
Posté le 23/05/08 à 15:54
Alors, un exemple rapide :


//Dans ta Form1 private string chaine1, chaine2; private int entier; //on suppose qu'ils ont été affectés quelque part... // la fonction du clic sur un bouton private void button_OnClick(object sender, EventArgs e) { Form2 f = new Form2(); f.UpdateValues(chaine1, chaine2, entier); f.ShowDialog(); } // Dans ta Form2 private label l1, l2, l3; // ... public void UpdateValues(string c1, string c2, int i1) { l1.Text = c1; l2.Text = c2; l3.Text = i1.ToString(); }


Voila. Smiley
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

loicDu28
Nouveau membre
Inscrit : 15/04/2008
Messages : 24
Message
#153406
Posté le 23/05/08 à 18:40
Merci encore pour ton aide Czayfaboo.

cela fonctionne à merveille.

Je suis entrain de créer la fenêtre. Mais par contre, j'ai voulu essayer pour faire en sorte d'imprimer la deuxième forms mais ça m'imprime toujours la première.
Voici le code que j'utilise pour l'impression :

private void pd_PrintPage(object sender, PrintPageEventArgs e) { PBWindow.Visible = true; PBScreen.Visible = true; // Là c'est comme si tu fais un dessin normal Graphics dc = e.Graphics; // tu fait ton dessin sur le support dc (c'est là que tu peux dessiner ton entête entreprise puis ajouter le contenu de la Form). Bitmap screen; Bitmap window; // simuler l'appui de la touche PrintScreen SendKeys.SendWait("{PRTSC}"); // récupérer l'image obtenue dans le Presse-Papier window = ((Bitmap)(Clipboard.GetDataObject().GetData("Bitmap"))); // attribuer l'image à PBWindow PBWindow.Image = window; // simuler le PrintScreen enrichi SendKeys.SendWait("+{PRTSC}"); // récupérer l'image obtenue dans le Presse-Papier screen = ((Bitmap)(Clipboard.GetDataObject().GetData("Bitmap"))); // attribuer l'image à PBScreen PBScreen.Image = screen; dc = Graphics.FromImage(PBScreen.Image); dc = Graphics.FromImage(PBWindow.Image); e.Graphics.DrawImage(PBScreen.Image, new PointF(50, 50)); // Test s'il n'y a plus aucune page à imprimer if ( dc == null ) e.HasMorePages = true; else e.HasMorePages = false; } private void FenetreImpression_Load(object sender, System.EventArgs e) { PrintDocument pd = new PrintDocument(); // évènement déclenché juste avant l'impression pour obtenir un dessin pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); // lancement de l'impression pd.Print(); }

Si tu as une idée du pourquoi, ca serais cool.

Merci pour tout!!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

loicDu28
Nouveau membre
Inscrit : 15/04/2008
Messages : 24
Message
#153410
Posté le 23/05/08 à 19:43
J'ai réussit a faire en sorte qu'elle imprime bien ma deuxième form.

Maintenant, il me reste à voir pour la taille mais ça je pense y arrivé.

Mon autre problème c'est sur la tite fenêtre de dialogue "Impression" qui s'affiche ou on nous dit : "Page 1 sur document". Je souhaiterais faire en sorte quel ne s'imprime pas, comment dois-je faire?? Puis comment je peux faire en sorte d'avoir le nombre exacte de feuille à imprimer apré sur?? (exemple : si on a 5 feuille à imprimer, que ça nous écrive "Page 1 sur 5 documents")

Merci d'avance!!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#153413
Posté le 23/05/08 à 22:22
Salut, tu fais dériver ta seconde form de ta form principale NouvelleIntervention :

public class Form2 : NouvelleIntervention

C'est pour ça que ça t'affiche les composants de ta première form.
Tu déclares des composants qui sont aussi déclarés dans ta form mère, ils les cachent donc. C# indique que dans ce cas pour redéfinir des variables dans les classes filles, ils faut les tagguer avec le mot réservé new.
Mais pour ton problème, tu ne dois pas faire d'héritage de form est ça résoudra ton problème.

PS : quand tu as une question, merci de ne pas continuer sur un sujet existant et qui traite d'autre chose mais ouvre un nouveau sujet.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

loicDu28
Nouveau membre
Inscrit : 15/04/2008
Messages : 24
Message
#153414
Posté le 23/05/08 à 22:32
Bonsoir,

Merci pour ta réponse pac mais j'ai réussi à résoudre mon problème grâce à Czayfaboo.

Maintenant j'ai un problème lors de l'impression c'est à dire qu'il m'affiche une boîte de dialogue nommée "Impression" (dans lequel il est écrit le nombre de document à imprimer) alors que moi je ne veux pas qu'elle soit afficher.(avant l'impression,ok mais pas sur la feuille que j'imprime). Comment faire??

Sinon, j'ai continuer sur ce sujet car à la base, j'avais le même souci puis vu que l'impression est la suite des étapes de mon problème(l'impression correspond au pourquoi j'ai créer une deuxième forms.)j'ai continué sur ce sujet.

Merci d'avance!!
Cordialement.
Loic.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2876
Message
#153423
Posté le 24/05/08 à 02:35
Je comprends pas bien...

Tu dis qu'une boite "Imprimer" s'affiche alors que ton code ne montre a aucun moment la création d'une PrintDialog...
D'où vient cette boite ?
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM CSHARP (C#)



    PAGES : [1] [2] [3]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.