1)v procedúre vykreslit síce pridávate procedúru paint ako handler události Paint, avšak táto udalosť je vyvolaná len, ak Windows požiada PictureBox1, aby sa prekreslil, prípadne ak na ňom zavoláte Invalidate 2)Váš kód mi smrdí zlým OOP návrhom. Ja by som to riešil tak, že vytvorím vlastnú triedu dediacu z System.Windows.Forms.Control, a potom štruktúru, ktorá by niesla všetky informácie potrebné na vykreslenie daného tvaru(okrem Graphics objektu). Do toho controlu dám kolekciu/pole danej štruktúry, a vykresľujem v handleri na udalosť Paint. Ak to je nutné, môžete na koniec handlera .Paint dať volanie Me.Invalidate(), potom však nastavte DoubleBuffered na True. A taktiež Graphics objekt dostanete v parametri e.Graphics v handleri na Paint, nevytvárajte si nový cez CreateGraphics.
|