Programowanie w środowisku graficznym GUI 1. Wprowadzenie Język C# jest stworzony do szybkiego tworzenia aplikacji przy pomocy zintegrowanego środowiska programistycznego IDE (ang. Itegrated Development Environment), które wykorzystuje zalety graficznego systemu operacyjnego GUI (ang. Graphics User Interface). Przy pomocy tego narzędzia programistycznego można tworzyć aplikacje typu GUI, potocznie nazywane aplikacjami Windows owymi (okienkowymi ). 2. Środowisko IDE przykłady 1) Uruchom C# 2) Wybierz z menu File New Project. 3) W oknie dialogowym New Project podświetl WindowsForms Application, w polu Name wpisz własną nazwę np. Okienka. 4) Zostanie utworzony szkielet projektu oraz pusta formatka głównego okna o nazwie Form1. Dodatkowe, bardzo przydatne, paski narzędzi (Toolbox, Solution Explorer oraz Properties) można włączyć w menu głównym w opcji View. Zawierają one: Toolbox wszystkie standardowe elementy interfejsu graficznego np. o Button przycisk o Menu menu o Label tekst o TextBox element edycyjny do wprowadzania tekstu o ComboBox lista rozwijana o CheckBox włącznik opcji niezależny od innych o RadioButton wybór tylko jednej opcji z wielu o oraz wiele innych
Solution Explorer strukturę programu w postaci drzewa z szybkim dostępem do poszczególnych modułów. Okna (elementy typu Form) mogą być wyświetlane w trybie: o View Designer projektowania o View Code edycja kodu źródłowego Dostęp do poszczególnych trybów poprzez prawy klawisz myszy Properties właściwości (parametry) wszystkich elementów interfejsu graficznego z możliwością ich zmiany 5) Dodanie elementu np. przycisku do okna: a) Rozwinąć pasek narzędziowy Toolbox b) Wybrać Button c) Kliknąć na formatce okna w miejscu gdzie ma się znaleźć przycisk d) Dopasować wymiary i położenie przycisku do potrzeb e) Rozwinąć pasek narzędziowy Properties oraz zmienić właściwości o Name (nazwa obiektu) o Text (tekst wyświetlany na przycisku) o Font (rodzaj i wielkość czcionki oraz dodatkowe jej atrybuty) f) Wszystkie właściwości obiektów można również modyfikować bezpośrednio w kodzie programu np. zmiana tytułu okna głównego: this.text = "Okno główne"; g) Dwukrotnie kliknąć na przycisku. o Do obiektu okna zostanie dodana automatycznie metoda o nazwie NazwaPrzycisku_Click o Metoda ta zostanie powiązana ze zdarzeniem Click generowanym przez przycisk (zostanie ona wywołana za każdym razem gdy użytkownik naciśnie przycisk) o W metodzie należy wpisać instrukcje jakie mają się wykonać po wystąpieniu zdarzenia, które ta metoda obsługuje. W tym wypadku np.: this.close();
Jest to wywołanie z bieżącego obiektu (Form czyli okno) metody Close(), która spowoduje jego zamknięcie. o Wszystkie zdarzenia oraz metody je obsługujące można obejrzeć w Properties 6) Kompilacja programu przy pomocy menu głównego Build, Build solution lub klawisza F6. Jeśli program zawiera błędy pojawi się okienko Error list z zakładkami: o Errors poważne błędy uniemożliwiające kompilację i uruchomienie programu o Warnings ostrzeżenia o nieprawidłowościach, które pozwalają wprawdzie uruchomić program ale mogą być źródłem nieprawidłowości w jego działaniu o Messages inne komunikaty 9) Zmień nazwę przycisku button1 klasy button klikając dwa razy w ten przycisk a następnie zminiamy wpis w polu Text z wartości button1 na Koniec. 7) Uruchomienie programu przy pomocy menu głównego Debug, Start debugging lub klawisza F5. Jeśli program przerwie pracę na skutek błędu pojawi się okno ze stosowną informację. Aby ponownie móc skompilowaćprogram należy zakończyć pracę wcześniejszej, awaryjnie przerwanej sesji poprzez Debug, Stop debugging lub klawiszem Shift+F5 Tak wygląda program pusty w wersji aplikacji pracującej z interfejsem graficznym w systemie Windows. Następnym krokiem będzie stworzenie programu wyświetlającego komunikat dla użytkownika, można to zrobić na kilka sposobów. Jednym z nich jest stworzenie obiektu label1 kalsy Label i zastosowanie go do wyświetlenia stałej tekstowej na przykład Witam na zajęciach laboratoryjnych. Należy zrobić co następuje: 1) Stworzyć obiekt label1 na formatce aplikacji 2) Stworzyć drugi przycisk button2 klasy Button i klikając w niego dwa razy przechodzimy do kodu źródłowego metody Button2Click i wpisujemy instrukcję przypisania: label1.text="witam na zajęciach laboratoryjnych ; Po uruchomieniu aplikacji towrzymy następną funcjonalność, wprowadzamy informację od użytkownika pod postacią tekstu i wyświetlamy go w obiekcie label1. 1) Tworzymy obiekt textbox1 klasy TextBox 2) Klikamy dwa razy w przycisk button2 i dopisujemy następną instrukcję: label1.text=textbox1.text; Po uruchomieniu aplikacja powinna wyglądać ja poniźej na rysunku: Zadania 1. Czy można wczytać liczy z obiektu TextBox? Jeśli tak to wczytaj liczbę podnieś ją do kwadratu i wyświetl jako obiekt label1. 2. Zmień napisy na obiektach w aplikacji, np. button2 na Czyń w polu Text właściwości obiektu Button
Klasa Messagebox Klasa MessageBox służy do: wyświetlania krótkich informacji np. o zakończeniu jakiegos procesu podjęcia decyzji typu Tak/Nie przez użytkownika wyświetlenia informacji o błędzie wyświetlenia informacji o błędzie i podjęcie decyzji przez użytkownika co dalej W oknie mogą się pojawiać różne kombinacje przycisków i w zależności od tego okno jest tylko informacyjne lub pozwala użytkownikowi podjąć decyzję. W oknie można wyświetlić jedną z ikon co dodatkowo podkreśla charakter systuacji: informacja, pytanie i decyzja, błąd, błąd i reakcja. Uaktywnienie MesageBox polega na wywołaniu statycznej metody Show i przekazaniu do niej stosownych parametrów. Dodatkowo metoda zwraca informację o tym jaką decyzję podjął uzytkownik, tzn. który przycisk nacisnął. Oczywiście ma to zastosowanie tylko w przypadku okien decyzyjnych (z kilkoma przyciskami) Przykłady różnych wersji okna MessageBox Najprostrza wersja. Okno informacyjne z przyciskiem OK. MessageBox.Show("Test w okienku"); Okno informacyjne z przyciskiem OK oraz własna nazwa na pasku MessageBox.Show("Test w okienku","tytuł"); Okno z własna nazwą, tekstem oraz przyciskami MessageBox.Show("Test w okienku oraz przyciski","tytuł",messageboxbuttons.yesno); Okno decyzyjne z nazwą, tekstem oraz ikonka dodatkowo informującą o charakterze informacji. MessageBox.Show("Test w okienku oraz przyciski i ikonka", "Tytuł", MessageBoxButtons.YesNo,MessageBoxIcon.Information);
Dostępne elementy Kombinacje przycisków MessageBoxButtons. Ikony MessageBoxIcon. Zwracany wybór uzytkownika DialogResult. Abort, Cancel, Ignore, No, None, OK, Retry, Yes Przykład z reakcją na decyzje użytkownika if (DialogResult.Yes == MessageBox.Show("Czy na pewno chcesz zakończyc program?", "Zdecyduj sie", MessageBoxButtons.YesNo)) { //Reakcja na wybranie Tak } else { //Reakcja na wybranie Nie }