Diskuze: Jak udělát z pictureboxu button?

C# .NET .NET (C# a Visual Basic) Jak udělát z pictureboxu button? American English version English version

Avatar
michaelbeats7:

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áš "CrashTest" Bitter:

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

Nahoru Odpovědět  -3 14.2.2015 16:44
Need for Steve
Avatar
michaelbeats7:

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:

jedna se o WPF nebo Winforms?

 
Nahoru Odpovědět 14.2.2015 16:54
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na michaelbeats7
Jan Vargovský:

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:

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
Odpovídá na michaelbeats7
sadlomaslox25:

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
rwn
Člen
Avatar
Odpovídá na michaelbeats7
rwn:

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 rwn
sadlomaslox25:

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
rwn
Člen
Avatar
Odpovídá na sadlomaslox25
rwn:

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
Tým ITnetwork
Avatar
Adam Ježek:

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
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
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.