Avatar
Doupak
Člen
Avatar
Doupak:

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.