IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
michaelbeats7:14.2.2015 16:22

Mám picturebox viz. obrázek a chci aby 1 byl jeden button, 2 další button a takhle všechno.. Jak na to?

 
Odpovědět
14.2.2015 16:22
Avatar
Tomáš Bitter
Tvůrce
Avatar
Tomáš Bitter:14.2.2015 16:44

Popiš to více ... (kde ty buttony mají být, jak mají vypadat ...)

 
Nahoru Odpovědět
14.2.2015 16:44
Avatar
michaelbeats7:14.2.2015 16:54

vidiš ten obrázek? jak tam jsou čísla.. tak aby každy číslo byl jeden button ... aby to vypadalo přes takhle

 
Nahoru Odpovědět
14.2.2015 16:54
Avatar
Odpovídá na michaelbeats7
sadlomaslox25:14.2.2015 16:54

jedna se o WPF nebo Winforms?

 
Nahoru Odpovědět
14.2.2015 16:54
Avatar
Odpovídá na sadlomaslox25
michaelbeats7:14.2.2015 16:56

Vypadá to takhle

 
Nahoru Odpovědět
14.2.2015 16:56
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na michaelbeats7
Jan Vargovský:14.2.2015 17:15

Urči si střed, velikost buttonu a pak použij trošku matiky.

 
Nahoru Odpovědět
14.2.2015 17:15
Avatar
Odpovídá na Jan Vargovský
michaelbeats7:14.2.2015 17:25

No ale když dam visible false, tak to pak nefunguje

Editováno 14.2.2015 17:26
 
Nahoru Odpovědět
14.2.2015 17:25
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na michaelbeats7
Jan Vargovský:14.2.2015 17:35

Nerozumím.

 
Nahoru Odpovědět
14.2.2015 17:35
Avatar
Odpovídá na michaelbeats7
sadlomaslox25:14.2.2015 18:30

musis si udelat odvozenou tridu button a v nem overidovat metodu onpaint. neco jako:

public class HexaButton : Button
{
    protected override void OnPaint(PaintEventArgs pevent)
    {
        using (var gp = new GraphicsPath())
        {
            gp.AddPolygon(Enumerable
                .Range(1, 6)
                .Select(o =>
                    new Point(
                        (int) Math.Round(20*Math.Sin(2*Math.PI*o/6)) + 50,
                        (int) Math.Round(20*Math.Cos(2*Math.PI*o/6)) + 50))
                .ToArray());


            Region = new Region(gp);
            pevent.Graphics.FillPath(Brushes.Silver, gp);
            pevent.Graphics.DrawString("1", DefaultFont, Brushes.Black, new PointF(45, 45));
        }

    }
}
 
Nahoru Odpovědět
14.2.2015 18:30
Avatar
rawen
Člen
Avatar
Odpovídá na michaelbeats7
rawen:14.2.2015 19:05

Mám lepší nápad na řešení. Tenhle obrázek si udělej bez té "pyramidy" vykresli si jednotlivé šestiúhelníky jeden po jednom na dané pozici - každému šestiúhelníku udělej událost na kliknutí a máš vyřešeno vše a jednoduše. :)

Nahoru Odpovědět
14.2.2015 19:05
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Odpovídá na rawen
sadlomaslox25:14.2.2015 19:15

podle me se tam budou prekryvat hitboxy protoze podle me picture box nebude podporovat ignorovani mouse eventu pro transparentni barvy.

 
Nahoru Odpovědět
14.2.2015 19:15
Avatar
rawen
Člen
Avatar
Odpovídá na sadlomaslox25
rawen:14.2.2015 22:35

když tomu tvému geometrickému útvaru nastavíš událost tak to bude fungovat v pohodě :) a hlavně to budeš moc celou pyramidu vykreslit cyklem..

Nahoru Odpovědět
14.2.2015 22:35
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:17.2.2015 16:06

http://www.itnetwork.cz/…indows-forms
http://www.itnetwork.cz/…e-picturebox

jen tam nejsou šetiúhelníky ale čtverce, ale s trochou přemejšlení to nebude problém

Nahoru Odpovědět
17.2.2015 16:06
Počkej chvíli, poradím se s křišťálovou koulí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.