Spis treści I. Tworzenie aplikacji okienkowych Materiały do zajęć IX II. Cechy obiektów typu Form III. Właściwości (cechy) formy IV. Przykładowe własności forma i ich opis V. Obsługa zdarzeń VI. Metody dla obiektu klasy form VII. Korzystanie z prostych kontrolek VIII. Kolekcje Tworzenie aplikacji okiennych Form Form to podstawowy obiekt wykorzystywany przy tworzeniu interfejsu użytkownika w aplikacjach systemu Windows. Umożliwia on uruchomienie aplikacji, oraz zapewnia komunikację z użytkownikiem aplikacji. Proces tworzenia interfejsu użytkownika polega na umieszczaniu w desginerze dla forma dowolnych obiektów, kontrolek takich jak np. przyciski, etykiety, pola tekstowe, menu itd. oraz zdefiniować oddziaływanie kontrolek na siebie nawzajem przez wykorzystanie mechanizmu zdarzeń (np. reakcję na naciśnięcie przycisku). Bazową klasą dla każdej formy jest klasa Form, znajdująca się w przestrzeni System.Windows.Forms W projekcie możemy korzystać z więcej niż jednego forma, w tym celu musimy go dodać do projektu. Dodanie nowej formy do projektu polega na W oknie Solution Explorer kliknąć prawym klawiszem myszy na nazwie projektu. Z menu Add wybrać opcję Windows Form... W oknie Add New Item w polu Name wpisać nazwę pliku dla nowej formy. Nacisnąć przycisk Add. 1
Cechy obiektów typu Form Właściwości - pozwalające na zmianę wyglądu formy; Metody - pozwalające na zdefiniowanie zachowania formy; Zdarzenia - pozwalające na interakcję z użytkownikiem. Właściwości (cechy) formy Cechy forma są dostępne w oknie properties Window. Zamiana własności przez kliknięcie na jej nazwę i po prawej stronie wpisanie lub wybranie z listy określonej wartości. Właściwości okna mogą być wyświetlane w grupach funkcyjnych lub w porządku alfabetycznym (Name jako pierwsze). Przykładowe własności forma i ich opis CancelButton Określa, który przycisk ma pełnić rolę domyślnego przycisku anulowania (reagować na naciśnięcie klawisza ESC). (nonę) Właściwość Wartość domyślna Name AcceptButton AutoSize Nazwa formy (chodzi o nazwę klasy dla formy, której będziemy używać tworząc obiekty nie zaś napisu wyświetlanego na pasku tytułowym okna). Określa, który przycisk ma pełnić rolę domyślnego przycisku akceptacji (reagować na naciśnięcie klawisza ENTER). Określa, czy forma ma być automatycznie dopasowana do kontekstu. Forml, Form2,... (nonę) False BackColor Określa kolor tła formy. Control ControlBox Cursor Enabled Font Określa, czy forma wyświetla przyciski kontroli okna w pasku tytułowym. Menu może zawierać przyciski minimalizacji, maksymalizacji, pomocy oraz zamknięcia. Określa rodzaj kursora myszy wyświetlany w czasie, gdy znajdzie się on w obrębie formy. Określa czy forma jest dostępna (aktywna). Określa rodzaj czcionki używanej przez formę. Default Microsoft Sans Serif; 8,25pt 2
ForeColor FormBorderStyle Określa kolor tekstu i grafiki formy. Określa wygląd okna (okno rozszerzalne, dialogowe, bez ramki, narzędziowe, itd). ControlText Sizable MaximumSize Określa maksymalny rozmiar formy. 0, 0 (czyli dowolny) Menu Określa, które menu jest głównym dla okna. (nonę) HelpButton Określa, czy okno posiada przycisk pomocy. False MinimizeBox Określa, czy forma posiada przycisk minimalizacji na pasku tytułowym. Icon Określa ikonę dla formy. domyślna MinimumSize Określa minimalny rozmiar formy. 0,0 Location Określa pozycję górnego lewego rogu formy. 0,0 Size Określa rozmiar początkowy formy. 300; 300 Locked Określa, czy kontrolki mogą być przesuwane i czy można zmieniać ich rozmiar. Text Określa tytuł formy pojawiający się na pasku tytułowym. Forml, Form2,... MaximizeBox Określa, czy forma posiada przycisk maksymalizacji na pasku tytułowym. WindowState Określa sposób pojawienia się formy (normalna, zminimalizowana lub zmaksymalizowana). Normal Obsługa zdarzeń Form posiada listę zdarzeń obsługiwanych zdarzeń dostępnych przez pośrednictowa okna Properties Window. Każde ze zdarzeń może zostać powiązane z metodą zawierającą kod wykonywany podczas jego wystąpienie. Dodawanie metod reagujących na zdarzenie następuje za pośrednictwem okna Properties Window. Okno to pozwala zarówno na zmianę właściwości, jak i przypisywanie zdarzeniom metod. Tryb edycji właściwości jest aktywny w momencie naciśnięcia ikony Properties, natomiast tryb edycji zdarzeń w momencie naciśnięcia ikony Events. Rysunek Okno Properties w trybie edycji zdarzeń (na rysunku widać przypisaną zdarzeniu Load metodą Forml_Load) Zdarzenie Activated Click Deactivate DoubleClick Enter FormClosed FormClosing KeyDown Występuje, gdy forma jest aktywowana przez użytkownika lub instrukcję. Występuje, gdy nastąpi kliknięcie na formę. Występuje, gdy forma jest deaktywowana (traci focus). Występuje, gdy nastąpi podwójne kliknięcie na formę. Występuje, gdy nastąpi wejście do formy. Występuje, gdy forma zostanie zamknięta (po zamknięciu). Występuje, gdy forma jest zamykana (przed zamknięciem). Występuje, gdy nastąpi naciśnięcie klawisza (przekazywany jest kod klawisza). 3
KeyPress KeyUp Leave Load MouseDown MouseMove MouseUp Move Paint Występuje, gdy nastąpi naciśnięcie klawisza (przekazywany jest znak klawisza). Występuje, gdy nastąpi zwolnienie klawisza (przekazywany jest kod klawisza). Występuje, gdy nastąpi opuszczenie formy. Występuje w momencie ładowania formy (zdarzenie to występuje przed wywołaniem metody Show) i jest używane w przypadku, gdy istnieje potrzeba przypisania domyślnych wartości formie i jej kontrolkom i zmiennym). Występuje, gdy zostanie naciśnięty przycisk myszy. Występuje, gdy kursor myszy jest poruszany w obszarze formy. Występuje, gdy zostanie zwolniony przycisk myszy. Występuje, gdy forma zmienia położenie. Występuje, gdy forma jest przerysowywana. Metody dla obiektu klasy form Metoda Activate Close Focus Hide Refresh Show ShowDialog Aktywuje formę. Zamyka formę. Sprawia, że forma uzyskuje focus. Ukrywa formę. Wymusza odświeżenie (odrysowanie) całej formy i jej kontrolek. Pokazuje formę. Pokazuje formę jako modalne okno dialogowe. Resize Występuje, gdy forma zmienia swój rozmiar Update Wymusza odrysowanie widocznej części formy. Korzystanie z prostych kontrolek Kontrolki to obiekty, które umieszczamy na formie Dodanie kontrolki do formy odbywa się poprzez wybór z okna Toolbox (przybornika) właściwej kontrolki i przeciągnięcie jej na formę. Rozmiar i położenie kontrolki można dopasować zarówno przed jak i też po upuszczeniu jej na forma. Jeżeli chcemy dopasować rozmiar i położenie w czasie upuszczania, wystarczy chwycić kontrolkę i umieścić kursor myszy w miejscu, gdzie ma się znajdować lewa górna krawędź kontrolki. Następnie trzymając lewy klawisz myszy wciśnięty poruszać się w prawy dolny róg. Po ustaleniu rozmiaru zwalniamy klawisz myszy. Jeżeli upuszczamy kontrolkę bez dopasowywania jej w czasie przeciągania, wystarczy kliknąć lewym klawiszem myszy w miejscu, w którym ma się znajdować lewa górna krawędź kontrolki, a wszelkie operacje przesunięcia i dopasowywania rozmiaru wykonać później. Po umieszczeniu kontrolek na formie można je dowolnie formatować. Można dokonywać zmian na całej grupie kontrolek. Grupę wybiera się trzymając wciśnięty klawisz Shift i wskazując kolejne kontrolki. Następnie wybieramy opcje formatowania w oknie Cech (Properties). Grupę kontrolek można dopasować co do szerokości wysokości i wzajemnego ułożenia korzystając z menu format. 4
Rodzaje kontrolek Buton standardowy przycisk Label etykieta, służy do umieszczania tekstu (opisu) na formie. LinkLabel aktywny link Radiobutton pole pozwalające na wybór opcji Combobox rozwijalna lista Picturebox umożliwia wstawienie grafiki textbox pole edycyjne pozwalające na wprowadzanie danych (również wielolinijkowe) chcekedbox pozwala na wybór więcej niż jednej opcji maskedtextbox pole z maską na wprowadzanie danych checkedlistbox lista wyboru z polami typu check datetimepicker kaledarz (zawiera ustawioną przez użytkownika date) progresbar pasek postępu richtextbox pole tekstowe z rozbudowanym formatowaniem numericupdown pole z możliwością wyboru wartości całkowitej listbox nierozwijalna lista wyboru Własności Właściwość Name AutoSize BackColor Cursor Dock Enabled Font ForeColor Location MaximumSize Size Text Visible Nazwa obiektu utworzonej kontrolki, którego będziemy używać w kodzie programu. Określa, czy kontrolka będzie automatycznie dopasowywana do kontekstu (np.: im dłuższy tekst tym większy rozmiar kontrolki). Określa kolor tła danej kontrolki. Określa rodzaj kursora myszy, jaki pojawi się, gdy znajdzie się on w obszarze kontrolki. Określa rodzaj zakotwiczenia kontrolki (np.: wypełnienie całego wnętrza). Określa, czy kontrolka jest dostępna (aktywna). Określa czcionkę i jej cechy używaną przez kontrolkę Określa kolor tekstu i grafiki używany przez kontrolkę. Określa położenie lewej i górnej krawędzi kontrolki. Określa maksymalny rozmiar kontrolki. Określa rozmiar kontrolki w pikselach. Określa tekst jaki zawiera kontrolka (np.: etykieta, przycisk). Określa, czy kontrolka jest widoczna po wyświetleniu formy. Metody Zdarzenia Focus Hide Refresh Show Update Metoda Sprawia, że kontrolka uzyskuje fokus (jest wyróżnioną jako jedyna na formie) Ukrywa kontrolkę. Wymusza odświeżenie kontrolki i wszystkich innych kontrolek, dla których dana kontrolka jest macierzysta. Pokazuje kontrolkę. Wymusza odświeżenie obszaru kontrolki. Zdarzenie Click ZdarzenieChanged Enter KeyDown KeyPress KeyUp Leave Występuje, gdy nastąpi kliknięcie w kontrolkę. Występuje, gdy zmianie ulega własność kontrolki o nazwie zdarzenie.(np. TextChanged) Występuje, gdy kontrolka staje się aktywna Występuje, gdy zostanie naciśniety klawisz na klawiaturze Występuje, gdy zostanie naciśnięty i puszczony klawisz myszy Występuje, gdy zostanie zwolniony klawisz myszy Występuje, gdy kontrolka przestaje być aktywna Resize Występuje, gdy nastąpi zmiana rozmiaru kontrolki Validated Validating Występuje, gdy kontrolka została sprawdzona (zwalidowana) pod względem wartości Występuje, gdy kontrolka jest sprawdzana. 5
Specyficzne własności kontrolek Własność Items Multicolumn InputText ScrollBars Checked Text Locked Size AutoCheck Apperance CheckState AcceptsTab Zawiera kolekcję elementów Własność określająca wielokolumnowość Tekst wprowadzony do kotrolki Określa widoczność pasków przewijania Określa czy kontrolka jest zaznaczona Określa tekst jaki zawiera kontrolka Określa czy kontrolka może być modyfikowana na etapie towrzenia Określa rozmiar kontrolki Określa czy po kliknięciu ma być zaznaczenie Określa wygląd kontrolki (wybór spośród dostępnych wartości) Określa stan pola wyboru (zaznaczone, niezaznaczone, nieokreślone) Określa możliwość używania klawisza tabulacji jako znaku dopuszczalnego dla pola BorderStyle HideSelection WordWrap Mask Określa rodzaj obramowania Określa czy zaznaczony tekst ma pozostać zaznaczony po opuszczeniu pola Określa opcję zawijania tekstu jeśli nie mieści się w polu dla pól wielolinijkowych Określa wzorzec dla pola np. 00/00/0000 format daty (dzień, miesiąc, rok) Dozwolone znaki specjalne 0 cyfra 0..9, wymagana wartość 9 cyfra 0..9, opcjonalna wartość # cyfra 0..9 lub spacja, opcjonalna wartość L litera, wymagana wartość? litera, opcjonalna wartość & - znak, wymagana wartość C znak, opcjonalna wartość A znak alfanumeryczny, wymagana wartość a znak alfanumeryczny, opcjonalna wartość. znak separacji dziesiętnej, - znak separacji tysięcy : - separator dla czasu / - separator dla daty $ - symbol waluty < - konwersja wszystkich znaków na małe > - konwersja wszystkich znaków na duże - zablokowanie poprzedniej konwersji Literały pozostałe znaki PromtChar ReadOnly Sorted Maximum Minimum Orientation Increment Określa rodzaj znaku wyświetlanego jako znak zachęty w polu do wprowadzania danych Określa edytowalność zawartości pola tekstowego Określa czy elementy mają być posortowane Określa maksymalną wartość Określa minimalną wartość Określa położenie kontrolki (horyzontalnie, wertykalnie) Określa o ile ma się zwiększać wartość Kolekcje Dodatkowe własności kontrolek zawierających kolekcję: SelectedIndex SelectedItem SelectedItems Własność Dodatkowe zdarzenia kontrolek zawierających kolekcję : Zdarzenie Odczytuje lub zapisuje indeks aktualnie wybranego elementu na liście Odczytuje lub zapisuje aktualnie wybrany element listy Zwraca kolekcję aktualnie wybranych elementów Padding Określa rozmiar dodatkowego miejsca wokół tekstu w kontrolce SelectedIndexChange Zdarzenie wykonywane w momencie zmiany aktualnie wybranego elementu na liście (zmiana własności selectedindex) 6
Kolekcja elementów Własność Count IsReadOnly Item Zwraca liczbę elementów kolekcji Sprawdza czy kolekcja dostępna jest w trybie tylko do odczytu Zwraca elementy kolekcji Metoda Add AddRange Clear Contains FindByText FindByValue IndexOf Remove RemoveAt Dodanie elementu do kolekcji Dodanie kilku elementów do kolekcji Wyczyszczenie listy elementów Sprawdza czy w kolekcji znajduje się określony element Pozwala na sprawdzenie czy element zawiera dany tekst Przeszukiwanie kolekcji po wartości Zwraca indeks podanego elementu Usuwa z kolekcji podany element Usuwa z kolekcji element o podanym indeksie 7