Bonjour
Quelqu'un pourrait-il me donner un exemple de création simple d'un dessin
sur une fenêtre, à son chargement ?
Voilà par exemple où j'en suis en ce moment :
//====
private void Form1_Load(object sender, EventArgs e)
{
UInt16 NbrePointsH = 80;
UInt16 NbrePointsV = 60;
PictureBox pb = new PictureBox();
System.Drawing.Bitmap bm = new System.Drawing.Bitmap(NbrePointsH,
NbrePointsV);
pb.Image= bm;
for (int x = 0; x < NbrePointsV; ++x)
for (int y = 0; y < NbrePointsH; ++y)
{
UInt16 R = 0; if (x==y) R= 255;
UInt16 V = 0;
UInt16 B = 0;
bm.SetPixel(x, y, Color.FromArgb(R, V, B));
}
bm.Save("test.gif", System.Drawing.Imaging.ImageFormat.Gif);
}
//====
Il y a bien un fichier gif créé, qui contient l'image attendue (ou
presque...), mais je ne vois rien sur ma fenêtre.
Merci aux secouristes !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mehdi
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
private void Form1_Load(object sender, EventArgs e) { UInt16 NbrePointsH = 80; UInt16 NbrePointsV = 60; PictureBox pb = new PictureBox(); System.Drawing.Bitmap bm = new System.Drawing.Bitmap(NbrePointsH, NbrePointsV); pb.Image= bm; for (int x = 0; x < NbrePointsV; ++x) for (int y = 0; y < NbrePointsH; ++y) { UInt16 R = 0; if (x==y) R= 255; UInt16 V = 0; UInt16 B = 0; bm.SetPixel(x, y, Color.FromArgb(R, V, B)); } bm.Save("test.gif", System.Drawing.Imaging.ImageFormat.Gif); } //=== > Il y a bien un fichier gif créé, qui contient l'image attendue (ou presque...), mais je ne vois rien sur ma fenêtre. Merci aux secouristes !
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la PictureBox et sauve l'image dans un fichier (note que ce dernier point n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load: this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit souhaité.
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
private void Form1_Load(object sender, EventArgs e)
{
UInt16 NbrePointsH = 80;
UInt16 NbrePointsV = 60;
PictureBox pb = new PictureBox();
System.Drawing.Bitmap bm = new System.Drawing.Bitmap(NbrePointsH,
NbrePointsV);
pb.Image= bm;
for (int x = 0; x < NbrePointsV; ++x)
for (int y = 0; y < NbrePointsH; ++y)
{
UInt16 R = 0; if (x==y) R= 255;
UInt16 V = 0;
UInt16 B = 0;
bm.SetPixel(x, y, Color.FromArgb(R, V, B));
}
bm.Save("test.gif", System.Drawing.Imaging.ImageFormat.Gif);
}
//=== > Il y a bien un fichier gif créé, qui contient l'image attendue (ou
presque...), mais je ne vois rien sur ma fenêtre.
Merci aux secouristes !
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la
PictureBox et sauve l'image dans un fichier (note que ce dernier point
n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais
a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus
par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans
ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a
rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la
main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load:
this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et
Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit
souhaité.
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
private void Form1_Load(object sender, EventArgs e) { UInt16 NbrePointsH = 80; UInt16 NbrePointsV = 60; PictureBox pb = new PictureBox(); System.Drawing.Bitmap bm = new System.Drawing.Bitmap(NbrePointsH, NbrePointsV); pb.Image= bm; for (int x = 0; x < NbrePointsV; ++x) for (int y = 0; y < NbrePointsH; ++y) { UInt16 R = 0; if (x==y) R= 255; UInt16 V = 0; UInt16 B = 0; bm.SetPixel(x, y, Color.FromArgb(R, V, B)); } bm.Save("test.gif", System.Drawing.Imaging.ImageFormat.Gif); } //=== > Il y a bien un fichier gif créé, qui contient l'image attendue (ou presque...), mais je ne vois rien sur ma fenêtre. Merci aux secouristes !
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la PictureBox et sauve l'image dans un fichier (note que ce dernier point n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load: this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit souhaité.
Mehdi
Pour comléter ma réponse, si ton but est réelement de dessiner a la main sur ta form, alors oublie les PictureBox et dessine directement sur ta form. Ce sera plus simple. Attache toi a l'evenement Paint de la form et dessine ton image la. Par exemple en faisant:
e.Graphics.DrawImageUnscaled(image, new Point(0,0));
A chaque foit que tu modifiera ton image, rafraichis la form en appelant sa méthode Invalidate() afin que tes modifications soient dessinées.
Pour comléter ma réponse, si ton but est réelement de dessiner a la main
sur ta form, alors oublie les PictureBox et dessine directement sur ta
form. Ce sera plus simple. Attache toi a l'evenement Paint de la form et
dessine ton image la. Par exemple en faisant:
e.Graphics.DrawImageUnscaled(image, new Point(0,0));
A chaque foit que tu modifiera ton image, rafraichis la form en appelant sa
méthode Invalidate() afin que tes modifications soient dessinées.
Pour comléter ma réponse, si ton but est réelement de dessiner a la main sur ta form, alors oublie les PictureBox et dessine directement sur ta form. Ce sera plus simple. Attache toi a l'evenement Paint de la form et dessine ton image la. Par exemple en faisant:
e.Graphics.DrawImageUnscaled(image, new Point(0,0));
A chaque foit que tu modifiera ton image, rafraichis la form en appelant sa méthode Invalidate() afin que tes modifications soient dessinées.
Débutant
"Mehdi" a écrit dans le message de news: aut8cnwcf8ga$.vs05txxzunfq$
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la PictureBox et sauve l'image dans un fichier (note que ce dernier point n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load: this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit souhaité.
Merci pour ces pistes. Pour l'instant j'ai pris la solution 1 et je progresse effectivement. Il me semble me souvenir d'avoir eu des problèmes pour modifier les propriétés, alors je laisse ça pour plus tard. Sinon l'écriture directe sur la Form me tente mais je manque encore de bases (c'est quoi ce "e" dans e.Graphics ?) Vivement que j'ai reçu ce bouquin que j'ai commandé ! (Programmer Microsoft Windows avec C Sharp) Merci encore Toujours débutant mais meilleur moral...
"Mehdi" <vioccc@REMOVEME.gmail.com> a écrit dans le message de news:
aut8cnwcf8ga$.vs05txxzunfq$.dlg@40tude.net...
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a
la
PictureBox et sauve l'image dans un fichier (note que ce dernier point
n'est pas nécessaire si tu veux juste afficher ton image sur ta form).
Mais
a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus
par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb.
Dans
ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus
a
rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la
main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load:
this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et
Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit
souhaité.
Merci pour ces pistes. Pour l'instant j'ai pris la solution 1 et je
progresse effectivement. Il me semble me souvenir d'avoir eu des problèmes
pour modifier les propriétés, alors je laisse ça pour plus tard.
Sinon l'écriture directe sur la Form me tente mais je manque encore de bases
(c'est quoi ce "e" dans e.Graphics ?)
Vivement que j'ai reçu ce bouquin que j'ai commandé ! (Programmer Microsoft
Windows avec C Sharp)
Merci encore
Toujours débutant mais meilleur moral...
"Mehdi" a écrit dans le message de news: aut8cnwcf8ga$.vs05txxzunfq$
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la PictureBox et sauve l'image dans un fichier (note que ce dernier point n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load: this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit souhaité.
Merci pour ces pistes. Pour l'instant j'ai pris la solution 1 et je progresse effectivement. Il me semble me souvenir d'avoir eu des problèmes pour modifier les propriétés, alors je laisse ça pour plus tard. Sinon l'écriture directe sur la Form me tente mais je manque encore de bases (c'est quoi ce "e" dans e.Graphics ?) Vivement que j'ai reçu ce bouquin que j'ai commandé ! (Programmer Microsoft Windows avec C Sharp) Merci encore Toujours débutant mais meilleur moral...
Franck GILET
Si c'est le livre de Charles Petzold que tu as commandé et que tu es débutant, je te souhaite bon courage, car il est pas facile à lire ;) Ce livre est plutôt destiné à des programmeurs confirmés. "Débutant" a écrit dans le message de news:
"Mehdi" a écrit dans le message de news: aut8cnwcf8ga$.vs05txxzunfq$
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la PictureBox et sauve l'image dans un fichier (note que ce dernier point n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load: this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit souhaité.
Merci pour ces pistes. Pour l'instant j'ai pris la solution 1 et je progresse effectivement. Il me semble me souvenir d'avoir eu des problèmes pour modifier les propriétés, alors je laisse ça pour plus tard. Sinon l'écriture directe sur la Form me tente mais je manque encore de bases (c'est quoi ce "e" dans e.Graphics ?) Vivement que j'ai reçu ce bouquin que j'ai commandé ! (Programmer Microsoft Windows avec C Sharp) Merci encore Toujours débutant mais meilleur moral...
Si c'est le livre de Charles Petzold que tu as commandé et que tu es
débutant, je te souhaite bon courage, car il est pas facile à lire ;) Ce
livre est plutôt destiné à des programmeurs confirmés.
"Débutant" <allergie.pollen@choum.snif> a écrit dans le message de news:
uNBPl8neGHA.764@TK2MSFTNGP05.phx.gbl...
"Mehdi" <vioccc@REMOVEME.gmail.com> a écrit dans le message de news:
aut8cnwcf8ga$.vs05txxzunfq$.dlg@40tude.net...
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a
la
PictureBox et sauve l'image dans un fichier (note que ce dernier point
n'est pas nécessaire si tu veux juste afficher ton image sur ta form).
Mais
a aucun moment tu n'ajoute la PictureBox a la liste des controles
contenus
par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb.
Dans
ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus
a
rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la
main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load:
this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et
Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit
souhaité.
Merci pour ces pistes. Pour l'instant j'ai pris la solution 1 et je
progresse effectivement. Il me semble me souvenir d'avoir eu des problèmes
pour modifier les propriétés, alors je laisse ça pour plus tard.
Sinon l'écriture directe sur la Form me tente mais je manque encore de
bases (c'est quoi ce "e" dans e.Graphics ?)
Vivement que j'ai reçu ce bouquin que j'ai commandé ! (Programmer
Microsoft Windows avec C Sharp)
Merci encore
Toujours débutant mais meilleur moral...
Si c'est le livre de Charles Petzold que tu as commandé et que tu es débutant, je te souhaite bon courage, car il est pas facile à lire ;) Ce livre est plutôt destiné à des programmeurs confirmés. "Débutant" a écrit dans le message de news:
"Mehdi" a écrit dans le message de news: aut8cnwcf8ga$.vs05txxzunfq$
On Wed, 17 May 2006 18:47:03 +0200, Débutant wrote:
Dans ton code, tu crée une image, crée une PictureBox, affecte l'image a la PictureBox et sauve l'image dans un fichier (note que ce dernier point n'est pas nécessaire si tu veux juste afficher ton image sur ta form). Mais a aucun moment tu n'ajoute la PictureBox a la liste des controles contenus par ta forme. Du coup, focement, tu ne vois rien. 2 solutions possibles:
1) Dans le designer, ajoute une PictureBox sur ta form et nomme la pb. Dans ton code, tu peux maintenant supprimer la ligne suivante qui ne sert plus a rien:
PictureBox pb = new PictureBox();
2) Si tu tiens pour une raison quelconque a créer ta Picture Box "a la main", alors rajoute cette ligne apres l'avoir créée dans Form1_Load: this.Controls.Add(pb);
Tu voudra sans doute égelement modifier les propriétés Location, Size et Anchor ou Dock de ta PictureBox pour qu'elle apparaisse a l'endroit souhaité.
Merci pour ces pistes. Pour l'instant j'ai pris la solution 1 et je progresse effectivement. Il me semble me souvenir d'avoir eu des problèmes pour modifier les propriétés, alors je laisse ça pour plus tard. Sinon l'écriture directe sur la Form me tente mais je manque encore de bases (c'est quoi ce "e" dans e.Graphics ?) Vivement que j'ai reçu ce bouquin que j'ai commandé ! (Programmer Microsoft Windows avec C Sharp) Merci encore Toujours débutant mais meilleur moral...
Mehdi
On Thu, 18 May 2006 15:29:46 +0200, Débutant wrote:
Sinon l'écriture directe sur la Form me tente mais je manque encore de bases (c'est quoi ce "e" dans e.Graphics ?)
Cette ligne de code est sensée etre placée dans le event handler de l'évenement Paint de ta Form (qui est appelé a chaque fois que la forme doit etre rafraichie). Pour créer cet handler, ouvre ta form dans le designer, va dans le paneau "Properties" (VS version anglaise), clique sur le boutton "Events" et double clique en face de Paint. L'event handler sera créé automatiquement pour toi dans le code. Et cet event handler a un parametre qui s'appele e.
On Thu, 18 May 2006 15:29:46 +0200, Débutant wrote:
Sinon l'écriture directe sur la Form me tente mais je manque encore de bases
(c'est quoi ce "e" dans e.Graphics ?)
Cette ligne de code est sensée etre placée dans le event handler de
l'évenement Paint de ta Form (qui est appelé a chaque fois que la forme
doit etre rafraichie). Pour créer cet handler, ouvre ta form dans le
designer, va dans le paneau "Properties" (VS version anglaise), clique sur
le boutton "Events" et double clique en face de Paint. L'event handler sera
créé automatiquement pour toi dans le code. Et cet event handler a un
parametre qui s'appele e.
On Thu, 18 May 2006 15:29:46 +0200, Débutant wrote:
Sinon l'écriture directe sur la Form me tente mais je manque encore de bases (c'est quoi ce "e" dans e.Graphics ?)
Cette ligne de code est sensée etre placée dans le event handler de l'évenement Paint de ta Form (qui est appelé a chaque fois que la forme doit etre rafraichie). Pour créer cet handler, ouvre ta form dans le designer, va dans le paneau "Properties" (VS version anglaise), clique sur le boutton "Events" et double clique en face de Paint. L'event handler sera créé automatiquement pour toi dans le code. Et cet event handler a un parametre qui s'appele e.