Stránka 1 z 1

Malování v c#

Napsal: 17 dub 2012 20:07
od kimi999
Zdravím,

opět dělám něco do školy v c# (Visual 2010), narazil jsem na pár problémů a budu vděčný za každou pomoc.
1. Chtěl jsem aby se kreslilo na pictureBox, místo toho to dopadlo takto:
grafeditor.jpg

Po kliknutí na pictureBox(bílé okno) sice začnu kreslit, ale kreslím jen na plochu aplikace. V případě kliknutí na plochu aplikace (mimo pictureBox) kreslení nefunguje.
Chtěl bych, aby se kreslilo jen na pictureBox a plochu programu to nechalo na pokoji.
Přidávám část kódu:

Kód: Vybrat vše

        private void pictureBox_MouseDown(object sender, MouseEventArgs e)
        {
            kresleni = true;
            Graphics g = CreateGraphics();
            PocX = e.X;
            PocY = e.Y;
        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            kresleni = false;
            if (KresliciNastroj == 1)
            {
                Graphics g = CreateGraphics();
                Pen pero = new Pen(Color.Black);
                g.DrawLine(pero, PocX, PocY, e.X, e.Y);
            }
            if (KresliciNastroj == 4)
            {
                Graphics g = CreateGraphics();
                Pen pero = new Pen(Color.Black);
                g.DrawEllipse(pero, PocX, PocY, e.X, e.Y);
            }
            if ((KresliciNastroj == 6) && (kresleni == true))
            {
                Graphics g = CreateGraphics();
                Pen pero = new Pen(Color.Black);
                g.DrawRectangle(pero, PocX, PocY, e.X, e.Y);
                PocX = e.X;
                PocY = e.Y;
            }

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            KresliciNastroj = 1;
            toolStripButton1.Checked = true;
        }

2. Může mi prosím někdo poradit jak na Bitmapu, uložení a načítání obrázků? Popř. odkázat na stránku, kdy bych našel nějakou pomoc?

Děkuji

Re: Malování v c#

Napsal: 17 dub 2012 20:13
od CZechBoY
není to náhodou tím, že CreateGraphics() vytváří to "kreslení" na formu?
zkus pictureBox1.CreateGraphics() místo toho
jinak koukám, že tam máš metody pro 2 pictureboxy nebo jen nějaký překlepy/pozůstatky?
:)

Re: Malování v c#

Napsal: 17 dub 2012 20:28
od kimi999
To je asi překlep jak jsem zkoušel různé metody jak by to mohlo fungovat...

--- Doplnění předchozího příspěvku (17 Dub 2012 20:42) ---

jj pomohlo to změnit na pictureBox1.CreateGraphics(). Díky
A nehodou nevíš jak je to s Bitmapu? Ve škole jsme si o tom moc neříkali, ale pokud chci ukládání a otevírání obrázků, potřebuji to.

Re: Malování v c#

Napsal: 17 dub 2012 23:22
od CZechBoY
normálně přes metodu DrawImage u graphics :)
C# píše:pictureBox1.CreateGraphics().DrawImage(Image.FromFile("cesta_k_obrazku.jpg"), new Point(0, 0));