V každém případě bych ti doporučil to druhé, tedy registraci události.
Ty metody "OnXXX" se myslím starají o spouštění těch událostí. A pokud nemáš důvod, tak bych na to nesahal. To co jsi napsal, sice pro tvuj pripad bude fungovat, ale uz to myslim nebude volat ty registrovane udalosti, protoze jsi na to zapomel.
Pokud to chceš použít, tak doporučuju takto:
- Kód: Vybrat vše
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
startDraw = true;
}
Tj, že zavoláš tu metodu u rodiče, který se postará o to co tam dělal, a pak provedeš vlastní kod.
Takže pokud vyloženě nemusíš, tak doporučuju spíše události. A navíc u událostí si můžeš snadno zaregistrovat třeba 4 metody, které dělají neco jiného a i je velice snadno odregistrovat, aby se neprovadeli. To u toho kodu v te On metodě bys musel mít několik IFů a kontrolovat neco, aby jsi věděl zda máš ten kus kodu provest. S udalostmi se pracuje mnohem lepe.