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 ().
Est ce que j'ai été clair ?
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.
__________________________
Sujet résolu ? Pensez à mettre le tag
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#.
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....
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
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#.
//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.
__________________________
Sujet résolu ? Pensez à mettre le tag
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#.
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();
}
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")
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].
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.
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
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#.