Accueil > Forum > > > > probleme avec controls.add
probleme avec controls.add
lundi 1 juin 2009 à 22:25:05 |
probleme avec controls.add

drx7
|
bonsoir je n'arrive pas à résoudre le probleme suivant: 1er cas Avec l'interface graphique de visualstudio je crée un panel et en ligne de code à l'aide de "controls.Add" j'y ajoute une picturebox, ca marche impecable; 2eme cas je ne passe pas par l'interface graphique, je crée une methode qui ajoute un panel et ensuite même maneuvre à l'aide de controls.Add j'y ajoute une pictureBox.Et la erreur, lors de la compilation il me dit que je ne peut pas ajouter la picturebox car le panel n'existe pas dans le contexte acutel? comment contourner cette erreur? merci impossible is nothing!
|
|
mardi 2 juin 2009 à 05:37:02 |
Re : probleme avec controls.add
|
mardi 2 juin 2009 à 10:08:41 |
Re : probleme avec controls.add

krimog
|
tu as pensé à faire monPanel = new Panel(); ?
Krimog : while (!(succeed = try())) ; - NON, "LE BAR" n'est PAS un langage de programmation ! -
|
|
mardi 2 juin 2009 à 17:45:12 |
Re : probleme avec controls.add

drx7
|
RE:
voici la partie du code: ----------------------------------------------------------------------------------------------- Panel panel5 = new Panel(); this.Controls.Add(panel5); panel5.BackColor = Color.Blue;
panel5.Size = new Size(Size.Height + 200, Size.Width); panel5.Size = new Size(Size.Height + 200, Size.Width);
this.X = 50; this.Y = 50; this.i = 0; this.nbdecal = 1;
if ((250 + (this.i * 250)) <= Size.Height) {
picturebox_Panel(BDimg[adr_image], BDimg[adr_image], this.X, this.Y);
-------------------------------------------------------------------------------------------------- et la fonction picturebox_panel() -------------------------------------------------------------------------------------------------- public void picturebox_Panel(string AdrImg, string name, int posX, int posY) { PictureBox ImgInPane2 = new System.Windows.Forms.PictureBox(); ImgInPane2 = new System.Windows.Forms.PictureBox(); ImgInPane2.BackColor = System.Drawing.Color.Red; ImgInPane2.SizeMode = PictureBoxSizeMode.StretchImage; ImgInPane2.Location = new System.Drawing.Point(posX, posY); ImgInPane2.Name = name; ImgInPane2.Size = new System.Drawing.Size(180, 130); ImgInPane2.Image = System.Drawing.Image.FromFile(AdrImg); panel5.Controls.Add(ImgInPane2);
} ------------------------------------------------------------------------------------------------------ l'érreur est située dans la fonction "picturebox_panel" derniere ligne, le compilateur me dit que panel5 n'existe pas dans le contexte acutel!
impossible is nothing!
|
|
mardi 2 juin 2009 à 18:12:46 |
Re : probleme avec controls.add

coq
|
Les variables locales d'une méthode ne se propagent pas automatiquement aux méthodes qu'elle appelle, et heureusement. Si tu as besoin de l'instance de Panel représentée par panel5 dans la méthode picturebox_Panel, il va falloir passer la référence en paramètre de cette dernière. /* coq MVP Visual C# CoqBlog*/
|
|
mardi 2 juin 2009 à 19:11:09 |
Re : probleme avec controls.add

drx7
|
Re: je me suis planté de sujet donc je me repette:
j'ai compris le probleme mais je vois pas comment le regler, quel outil je dois utiliser?
merci
impossible is nothing!
|
|
mardi 2 juin 2009 à 20:01:37 |
Re : probleme avec controls.add

drx7
|
RE: J'ai trouvé la réponse là voici:
public void IMG_IN_PANEL(string AdrImg, string name, int posX, int posY, ref Panel X) { PictureBox ImgInPane2 = new PictureBox(); ImgInPane2.BackColor = Color.Red; ImgInPane2.SizeMode = PictureBoxSizeMode.StretchImage; ImgInPane2.Location = new Point(posX, posY); ImgInPane2.Name = name; ImgInPane2.Size = new Size(180, 250); ImgInPane2.Image = Image.FromFile(AdrImg); X.Controls.Add(ImgInPane2); }
impossible is nothing!
|
|
mardi 2 juin 2009 à 20:07:29 |
Re : probleme avec controls.add

coq
|
En l'occurence le mot clé ref ne sert à rien dans ton cas : tout ce que tu veux c'est passer la référence déjà initialisée et l'utiliser. Le type Panel étant une classe, et donc un type référence, le passage de paramètre se fait déjà par référence => public void IMG_IN_PANEL(string AdrImg, string name, int posX, int posY, Panel X) ... /* coq MVP Visual C# CoqBlog*/
|
|
mercredi 3 juin 2009 à 18:11:58 |
Re : probleme avec controls.add

drx7
|
re:
ok
j'en profite pour poser une autre question en rapport:
admettons que je crée un fonction pour créer le panel:
public void C_panel() { Panel panelC = new Panel(); this.Controls.Add(panelC); panelC.BackColor = Color.Blue; panelC.Size = new Size(Size.Height + 200, Size.Width); panelC.Visible = true; }
j'insert cette fonction dans mon code, et je crée un bouton qui va agir sur l'attribut Visible :
en gros quand je clic sur le bouton panelC.Visible = false;
sachant que les variables locales d'une méthode ne se propagent pas automatiquement, comment je peut faire?
impossible is nothing!
|
|
mercredi 3 juin 2009 à 18:30:52 |
Re : probleme avec controls.add

coq
|
Si la méthode est destinée à créer un panel, il est logique qu'elle retourne la référence à l'instance crée : public Panel C_panel() { Panel panelC = new Panel(); this.Controls.Add(panelC); panelC.BackColor = Color.Blue; panelC.Size = new Size(Size.Height + 200, Size.Width); panelC.Visible = true; return panelC; } Par contre j'ai du mal à suivre ton architecture, ça m'a l'air de partir un peu dans tous les sens. /* coq MVP Visual C# CoqBlog*/
|
|
Cette discussion est classée dans : probleme, add, controls, panel, ajoute
Répondre à ce message
Sujets en rapport avec ce message
EventHandler + Controls.Add() = pas bien [ par ricklekebekoi ]
J'ai un proubleme !Que se soit un timer, un keyprest ...Tout fonctionne, sauf si je rajoute Controls.Add() pourt un bouton, un picturebox ou nimporte
Mouseenter sur un panel contenant pleins de controls [ par stormz23 ]
Bonjour.J'ai un panel auquel j'ajoute dynamiquement des controls. Ces controls ont eux meme des controls.J'aimerai pouvoir changer l'opacite de mon co
Print a panel avec plusieurs controls [ par D0X ]
Salut a tout le monde! J'ai un Panel au j'ai placé plusieurs Controls personnalisés. Voilà, je veux imprimer ce Panel. J'imagine que je dois construir
Probleme avec la class Graphics [ par Cisaks ]
Bonjour, Je ne vois pas trop comment expliquer mon probleme .Un panel peut contenir plusieurs controles. Ces
probleme de positionnement de formulaire [ par cudenetf ]
bonjour,je veux placer un formulaire "dans un autre formulaire" (dessu en fait) au niveau d'un panelje fais nvoformulaire.bounds=panel.boundsmai sil n
Agir sur les controls d'une form parent [ par nico4nicolas ]
Bonjour, Dans mon apprentissage du C# se pose a moi un probleme, je n'arrive pas a avoir acces aux proprietes d'un control qui se trouve dans une for
Add-in Outlook [ par citt ]
Bonjour,Mon probleme est que je developpe un add-in pour outlook et cela fonctionné jusqu'a maintenant mais maintenant outlook m'afiche bien dans le g
Probleme avec le panel de mon winform [ par fabio2300 ]
Bonjour a tous. voilà j'ai un soucis je suis entrain de faire un petit programme pour windows mobile. dans mon winforms j'ai un panel et dedans j'ai
Réinitialiser les controls d'un panel [ par Supopste ]
Bonjour,voilà tout est dans le titre,j'ai un panel dans lequel j'ai différents controls comme des numricUpDown,je voudrais en cliquant sur un bouton r
Re-dessiner un panel dans un form deja charge [ par egwene ]
Salut, voici mon petit probleme : au debut de mon application je charge un form avec un menu et un grand panel vide. Selon la navigation dans le menu,
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|