NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Vlastní ovládací prvek

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Doupak
Člen
Avatar
Doupak:16.9.2013 17:57

Zdravím,

potřeboval bych udělat vlastní ovádací prvek. Ve win forms je to System.Forms.Con­trol. V tom problém není. Ani v návrhu není problém. Mám pouze problém v tom, že jsem limitován "ClientRectangle". Potřeboval bych prvek, který právě není obdelník. Například kruh nebo čára, která se různě lomí. Potřebuji však eventy právě z Control. Jako je např.:

public event MouseEventHandler MouseClick
public event EventHandler MouseEnter
public event EventHandler MouseLeave

Když udělám (metoda z vlastního ovládacího prvku)

protected override void OnPaint(PaintEventArgs e)
{
    Graphics g = e.Graphics;
    Rectangle rec = ClientRectangle;
    g.DrawEllipse(new Pen(Color.Blue, 7), rec);
    g.FillEllipse(new SolidBrush(Color.Red), rec);
    base.OnPaint(e);
}

Tak se mi sice vykreslí kruh, ale události se odchytávají i mimo něj. Právě v tom místě, kde není kruj, ale kde je stále ClientRectangle.

Možná na to jdu úplně špatně. Budu vděčný za jakékoliv nápady.

Radši mám Windows Forms, protože s tím mám větší zkušenosti. Ale nebudu se bránit ani WPF.

Editováno 16.9.2013 17:59
 
Odpovědět
16.9.2013 17:57
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 1 zpráv z 1.