You are on page 1of 4

Akademia im. Jakuba z Paradyża w Gorzowie Wlkp.

Wydział Techniczny

INSTRUKCJA LABORATORYJNA

Przedmiot Wstęp do programowania

Laboratorium 4 Zdarzenia, właściwości, niestandardowe kontrolki użytkownika

1. Cel ćwiczenia
Celem tego laboratorium jest zapoznanie studentów z procesem tworzenia niestandardowych kontrolek
w języku C# przy użyciu Windows Forms. Studenci przejdą przez wszystkie etapy tworzenia
spersonalizowanych kontrolek, począwszy od definiowania własnych właściwości, tworzenia zdarzeń,
poprzez pisanie własnych EventArgs, aż do wytworzenia gotowej, w pełni funkcjonalnej kontrolki. Celem
jest nauczenie się budowania elastycznych kontrolek, które, zachowując zasady enkapsulacji, potrafią
efektywnie współdziałać z różnorodnymi obiektami systemu. Zaznajomienie studentów z technikami
programistycznymi takimi jak inwersja zależności, wykorzystanie interfejsów oraz zastosowanie typów
generycznych w procesie projektowania niestandardowych kontrolek. Dzięki temu studenci nauczą się
tworzyć komponenty, które nie tylko są odporne na zmiany w pozostałych częściach systemu, ale także
mogą być łatwo dostosowywane i wykorzystywane w różnych kontekstach aplikacji. Implementacja tych
zasad pozwoli na stworzenie modularnych i łatwych w utrzymaniu komponentów, zwiększając ich
użyteczność i skalowalność.

2. Wymagana znajomość zagadnień

 Umiejętność Pisania prostych aplikacji w C# lub innym obiektowym języku programowania


wysokiego poziomu. Znajomość i zrozumienie zagadnień omawianych na poprzednich
laboratoriach z przedmiotu: laboratorium 1, Laboratorium 2 oraz Laboratorium 3.

3. Literatura, materiały dydaktyczne

4. Wiadomości teoretyczne
 https://cezarywalenciuk.pl/blog/programing/c-delegaty-action-i-func
 https://www.youtube.com/watch?v=LQObNWAPzeI
 https://www.youtube.com/watch?v=oR8FrGfixC0
 https://www.youtube.com/watch?v=HcveJSqXGoY
 https://www.plukasiewicz.net/Csharp_dla_zaawansowanych/Zdarzenia
 https://learn.microsoft.com/pl-pl/dotnet/standard/events/
 https://learn.microsoft.com/pl-pl/dotnet/desktop/winforms/controls-design/how-to-create-
usercontrol?view=netdesktop-7.0
 https://www.youtube.com/watch?v=76Dhagr_fuc
 https://www.youtube.com/watch?v=A7qwuFnyIpM
 https://www.youtube.com/watch?v=l6s7AvZx5j8

1
Akademia im. Jakuba z Paradyża w Gorzowie Wlkp.
Wydział Techniczny

5. Przebieg ćwiczenia
Podobnie jak w przypadku laboratorium 2, obecne zostało również podzielone na 2 części. W pierwszej
części studenci powinni przygotować opracowanie zagadnień teoretycznych – podobnie jak miało to
miejsce dotychczas, oczywiście nadal własna interpretacja oraz opis własnymi słowami będą wyżej
punktowane. Część 2-ga laboratorium dotyczyć będzie zadania praktycznego, w trakcie którego studenci
będą mogli zweryfikować pozyskaną wiedzę teoretyczną i sprawdzić działanie pewnych funkcji w praktyce
na rzeczywistym kodzie.

Udzielić odpowiedzi na następujące pytania - max 30 pkt ( max 3 pkt za pytanie).

 Co to są delegaty w C# i jak różnią się od interfejsów? Podaj przykłady, jak mogą być używane w
kontekście kontrolek ?
 Wyjaśnij, co to jest lambda w C# i jak jej używanie może ułatwić pracę z kolekcjami danych oraz
zdarzeniami w kontekście GUI
 Jakie są różnice między delegatami a wyrażeniami lambda w C# i w jakich sytuacjach preferuje się
jedną formę nad drugą?
 Jakie są różnice między interfejsami a klasami abstrakcyjnymi w C#, i jak wybór między tymi dwoma
konstrukcjami wpływa na projektowanie komponentów?
 Co to są typy generyczne oraz jakie są najważniejsze korzyści z zastosowania typów generycznych?
 Co to jest kontrolka niestandardowa w C# i jakie są główne różnice pomiędzy niestandardowymi a
standardowymi kontrolkami w Windows Forms?
 Co to są EventArgs w C# i do czego są używane w kontekście zdarzeń w Windows Forms oraz jak
zdefiniować własną klasę EventArgs i dlaczego warto tworzyć niestandardowe klasy EventArgs?
 Jakie informacje można przekazać przez niestandardowe EventArgs i jakie są praktyczne przykłady
wykorzystania takich klas w zdarzeniach użytkownika?
 Jak można zastosować interfejsy w projektowaniu niestandardowych kontrolek, aby zwiększyć ich
modułowość i elastyczność? Podaj przykład.
 Wyjaśnij, jak niestandardowe kontrolki mogą współdziałać z innymi obiektami w aplikacji bez
znajomości ich konkretnego typu. Jakie techniki i wzorce projektowe można wykorzystać do
osiągnięcia takiej współpracy?

2
Akademia im. Jakuba z Paradyża w Gorzowie Wlkp.
Wydział Techniczny

Zadania praktyczne – Projektowanie i implementacja Niestandardowej Kontrolki w C#: max 50 pkt.

Cel:
Zaplanuj i zaimplementuj niestandardową kontrolkę w C# używając Windows Forms, która integruje się z resztą
systemu aplikacji i wykorzystuje zaawansowane techniki programowania, takie jak generyczność, interfejsy i
zdarzenia. Kontrolka powinna zawierać podstawowe mechanizmy obsługi błędów, zapewniające, że każdy błąd
jest odpowiednio rejestrowany i obsługiwany. Dodatkowo rozważyć możliwość zastosowania odpowiednich
wzorców projektowych, które mogą poprawić skalowalność i utrzymanie kontrolki, na przykład wzorzec fabryki
do tworzenia instancji kontrolki.

Polecenie Projektowe:
 Zaprojektuj kontrolkę, która spełnia konkretne potrzeby użytkownika lub rozwiązuje specyficzny
problem w obrębie aplikacji. Może to być na przykład kontrolka do filtrowania danych, panel
nawigacyjny, specjalistyczny pasek postępu, interaktywny kalendarz, kontrola zachowania lub wyglądu
interface użytkownika – GUI, sterowanie wyglądem aplikacji itp.
 Twoja kontrolka powinna implementować co najmniej jeden interfejs, który umożliwi interakcję z innymi
komponentami aplikacji, niezależnie od ich konkretnych typów.
 Zaprojektuj kontrolkę tak, aby mogła pracować z różnymi typami danych (np. używając typów
generycznych, cech dziedziczenia, interfejsów itp.), co w założeniu ma zwiększyć jej uniwersalność i
możliwość ponownego użycia.
 Zaimplementuj niestandardowe EventArgs i zdarzenia, które pozwolą na przekazywanie aktualnego
stanu kontrolki lub śledzenie zmian w samej kontrolce oraz wymianę danych z resztą aplikacji.
 Zintegruj kontrolkę z istniejącą aplikacją lub stwórz prostą aplikację demonstracyjną, która pokaże, jak
kontrolka funkcjonuje w praktycznym scenariuszu. Przeprowadź testy, aby zweryfikować działanie
kontrolki.

6. Opracowanie wyników, sprawozdanie.

7. Zadania dodatkowe / Uwagi

3
Akademia im. Jakuba z Paradyża w Gorzowie Wlkp.
Wydział Techniczny

Ćwiczenia / Laboratorium / Projekt


Sprawozdanie z realizacji ćwiczenia
Temat: Nr albumu: Grupa/zespół: Rok/semestr:

Data wykonania: Data oddania:

Wykonał /wykonali:
Ocena: Podpis prowadzącego:

Cel ćwiczenia:

Opis ćwiczenia / Opracowanie wyników:

Wnioski:

You might also like