Krzysztof Mossakowski
Programowanie w środowisku Windows
2007 - Zadania
Windows Forms: kontrolki
Przeglądarka obrazków.
Elementy programu (patrz przykład poniżej):
główne okno:
menu:
filtr wyświetlanych plików
bmp, gif, jpg - zaznaczalne pozycje włączające wybór poszczególnych rodzajów plików
All - włączenie wszystkich powyższych opcji
dodatkowe okna
Preview - pokazanie okna z podglądem całego obrazka
History - pokazanie okna z historią wyświetlanych plików
drzewo katalogów (TreeView) w lewej górnej części
wybór katalogu skutkuje zmianą zawartości listy plików
lista plików (ListBox) w lewej dolnej części
przedstawia pliki (bmp, gif, jpg - według zaznaczenia z menu) z katalogu wybranego z drzewa
wybór pliku skutkuje:
wyświetleniem tego pliku w widoku obrazka
zmianą aktualnego obrazka w oknie podglądu całego obrazka
dopisaniem nazwy i ścieżki do pliku do listy w oknie historii
zmianą danych na pasku stanu
pasek stanu w dolnej części, poszczególne panele:
pełna ścieżka aktualnie wybranego pliku
szerokość obrazka w pikselach
wysokość obrazka w pikselach
widok obrazka w pozostałej części
zawsze w skali 1:1
użyć skroli, jeśli obrazek jest większy niż obszar widoku
okno poglądu całego obrazka - zawsze widoczny cały obrazek, przeskalowany do rozmiaru okna
okno historii - lista oglądanych plików
ListView z dwiema kolumnami: nazwą i ścieżką do pliku
wybór pozycji z listy powoduje zmianę aktualnego obrazka na wybrany
Szczegóły implementacji:
wszystkie okna z możliwością zmiany rozmiaru, kontrolki powinny automatycznie dopasować swe rozmiary tak, by wypełnić całe okna
dwa działające splittery w głównym oknie (pomiędzy drzewem katalogów i listą plików oraz z lewej strony widoku obrazka)
użyc 4 delegatów dla zdarzenia zmiany aktualnego obrazka:
widok obrazka
pasek stanu
okno podglądu całego obrazka
okno historii
Sugestie:
klasy, metody, właściwości:
Directory.GetLogicalDrives, Directory.GetDirectories, Directory.GetFiles
Control.Dock
StatusBar.Panels
TreeView.Nodes, TreeView.AfterSelect
ListBox.Items, ListBox.SelectedIndexChanged
Panel.AutoScroll, Panel.AutoScrollMinSize
PictureBox.SizeMode
ListView.Columns, ListView.Items, ListView.View
prawidłowe zastosowanie delegatów to 1 punkt w końcowej punktacji
do zaniedbania:
wiele jednocześnie istniejących okien podglądu i historii
brak znaków [+] w drzewie katalogów oznajmiających istnienie podkatalogów
wielokrotne powtarzanie danych jednego pliku w historii (szczególnie w sytuacji zmiany aktualnego obrazka poprzez wybór pliku z historii)
brak automatycznego ustawienia drzewa katalogów i listy plików po wyborze pliku z historii
Przykładowe działanie programu