Święty utworzono 24 czerwca 2010 utworzono 24 czerwca 2010 (edytowane) Witam W jaki sposób mogę zmieniać zawartość kontrolek (w tym wypadku PictureBox) znajdujących się na defaultowo nazwanej form1 z poziom klas znajdujących się w innej przestrzeni nazw? Np w klasie asdf.cs tworzę sobie funkcję Rysuj() która rysuje na tym pictureboxie np kwadrat. Wiem, że można tego PB ustawić na public i przekazywać jako parametr, ale szukam innego rozwiązania. Poradzi ktoś?
rafalluz komentarz 24 czerwca 2010 komentarz 24 czerwca 2010 [quote]Wiem, że można tego PB ustawić na public i przekazywać jako parametr, ale szukam innego rozwiązania. Poradzi ktoś? [/quote] Masz dwa rozwiązania, które działają, więc nie do końca rozumiem problem. Po co Ci inne?
grucha komentarz 24 czerwca 2010 komentarz 24 czerwca 2010 (edytowane) Możesz jeszcze ew. zaprzyjaźnić te klasy. EDIT Co ja piszę... nie zaprzyjaźnić tylko dziedziczyć jedna po drugiej...
Święty komentarz 24 czerwca 2010 Autor komentarz 24 czerwca 2010 [quote name='rafalluz' date='24 czerwiec 2010 - 19:52' timestamp='1277405645' post='1040690'] Masz dwa rozwiązania, które działają, więc nie do końca rozumiem problem. Po co Ci inne? [/quote] A ja nie rozumiem tego posta, bo skoro pytam o inne rozwiązania to widocznie są mi do czegoś potrzebne... Więc pytając - liczę na ewentualną konstruktywną pomoc a nie komentowanie problemu(?) Poza tym tutaj miałem bardziej na myśli [b]jedno[/b] rozwiązanie, gdy ustawiam jako publiczną daną kontrolkę i przekazuję dostęp do niej w parametrze danej funkcji - co nie jest zbyt dobrą praktyką dlatego pytałem o jakieś inne alternatywne rozwiązanie.
rafalluz komentarz 25 czerwca 2010 komentarz 25 czerwca 2010 Masz konkretne zadanie - dostać się do elementu innej klasy, więc po co mieszać w to tzw. "dobre praktyki"? By to zrobić, potrzebujesz widoczności elementu - to oczywiste. Masz opcje? Masz, sam je podałeś. Jak Ci się bardzo nie podoba ustawianie jako public, napisz akcesory do pictureBoxa - co efektywnie niczym się, poza składnią, nie różni, bo sama własność jest public (chyba, że określisz, że chcesz samo get albo samo set). Jak nie, radzę przemyśleć, czy na pewno dobrze zaprojektowałeś hierarchię klas. Może Rysuj() powinno być tam, gdzie pictureBox, a z klasy wysyłasz tylko dane do rysowania?
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.