x-kom hosting

[C#] Dostęp do kontrolek formy z poziomu innej klasy

Święty
utworzono
utworzono (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
komentarz

[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
komentarz (edytowane)

Możesz jeszcze ew. zaprzyjaźnić te klasy.

EDIT
Co ja piszę... nie zaprzyjaźnić tylko dziedziczyć jedna po drugiej...

Święty
komentarz
komentarz

[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
komentarz

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.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.