• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C# - Pytanie nieprogramisty - Rysowanie w picturebox.

Object Storage Arubacloud
+1 głos
286 wizyt
pytanie zadane 2 lipca 2021 w C i C++ przez gszadkow Nowicjusz (130 p.)

Witam,

jak już zaznaczyłem w nagłówku nie jestem z zawodu programistą. Zajmuję sie tym bardziej hobbystycznie.

Napisałem program który wyświetla w picturebox mapę statku. Na tą mapę nanoszę za pomocą FillRectangle i FillEllipse punkty. Gdy klikam na liście (w górnej części programu) dowolny punkt, obrazek przesuwa się w rejon w którym punkt się znajduje. I teraz moje pytanie prośba o podpowiedź.

Chciałbym wprowadzić aby po przesunięciu mapy w okolice punku, punkt był w jakiś sposób "podświetlany", "wskazywany".

Chciałem rysować za pomocą timera punkt zmieniając mu kolor za każdym tickiem. Ale jeśli rysuję coś na rysunku to już zostaje na nim, nie moge tego "skasować", "zniknąć". Przejrzałem trochę stron w internecie ale jako, że nie mam pomysłu jak to pokazać, nie do końca wiem czego szukać.

Może ktoś z Was miałby pomysł jak zrealizować takie podświetlenie na tym picturebox'ie. Nie wiem czy dobrze kombinuję ale myślałem o obrazku przezroczystym nad obrazkiem właściwym na którym bym malował mrygający punkt, a po przejściu na inny punk bym go czyścił, ale nie wiem czy to dobry pomysł.

Chętnie posłychałbym jakiś propozycji od doświadczonych kolegów z forum.

Z góry dziękuję za pomoc i pozdrawiam.

PS. Mam nadzieję, że moje wyjaśnienia będą wystarczające do zobrazowania mojego problemu. 

komentarz 2 lipca 2021 przez j23 Mędrzec (194,920 p.)

Ale jeśli rysuję coś na rysunku to już zostaje na nim, nie moge tego "skasować", "zniknąć".

To "zniknięcie" realizuje się przez odmalowanie całego lub części rysunku od nowa.

komentarz 2 lipca 2021 przez gszadkow Nowicjusz (130 p.)
Ok. To czy dobrze rozumiem. Na przykład, mogę sklonować obecny obrazek jako nowa Bitmapa.

Narysować na sklonowanym obrazku mój "wskaźnik" i w Timerze podmieniać obrazki co tick?

Dzięki, pozdrawiam.
komentarz 2 lipca 2021 przez j23 Mędrzec (194,920 p.)
No mniej więcej.
komentarz 2 lipca 2021 przez gszadkow Nowicjusz (130 p.)
Dziękuję bardzo za odpowiedzi. Udało się, właśnie w powyższy sposób.

W funkcji kliknięcia kopiuje oryginalny obrazek, rysuje mój "wskaźnik" w tym przypadku kwadrat z lini przerywanej. Stworzyłem sobie zmienną boolean i w timerze zmieniam jej wartość oraz wyświetlam w zależności o wartości zmiennej boolean oryginalny rysunek i zmieniony.

Także, myślę, że można zamknąć ten wątek, sprawa rozwiązana. Pewnie nie jest to najbardziej optymalny sposób, ale działa.
1
komentarz 2 lipca 2021 przez Oscar Nałogowiec (29,320 p.)
edycja 2 lipca 2021 przez Oscar
Możesz też stworzyć drugi obrazek, pierwotnie przezroczysty i najpierw rysować ten plan statku z originalnego pictureboxa, a potem ten drugi, na którym będziesz rysował i zmazywał swoje elementy.

To taka metoda warstw.
komentarz 3 lipca 2021 przez VBService Ekspert (253,340 p.)
edycja 3 lipca 2021 przez VBService

@gszadkow, Spróbuj, Drawing to a new “layer” in C#, lub może tu znajdziesz wskazówkę OVERLAYING / COMPOSITING IMAGES USING C# – SYSTEM.DRAWING

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 335 wizyt
pytanie zadane 28 stycznia 2021 w C# przez Bartek12 Mądrala (5,510 p.)
0 głosów
2 odpowiedzi 3,110 wizyt
pytanie zadane 19 stycznia 2017 w C# przez kondzio11 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 1,699 wizyt
pytanie zadane 26 listopada 2016 w C# przez pclolowicz Użytkownik (500 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...