Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

C# Windows Forms Zastosowania Informatyki Wykład 3

Podobne prezentacje


Prezentacja na temat: "C# Windows Forms Zastosowania Informatyki Wykład 3"— Zapis prezentacji:

1 C# Windows Forms Zastosowania Informatyki Wykład 3
Copyright, 2004 © Adam Czajka

2 Copyright, 2004 © Adam Czajka
Spis treści Aplikacja Obiekt WinForm Copyright, 2004 © Adam Czajka

3 Aplikacja „Cykl życia” aplikacji .NET Aplikacja
Obiekt Form1 Application.Run(Form1); Copyright, 2004 © Adam Czajka

4 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Platforma .NET Aplikacja .NET Funkcja_obsługi_zdarzenia_1 Funkcja_obsługi_zdarzenia_2 Funkcja_obsługi_zdarzenia_3 Funkcja_obsługi_zdarzenia_4 Funkcja_obsługi_zdarzenia_N kolejka komunikatów start koniec komunikat ? WM_QUIT ? wywołaj procedurę obsługi TAK NIE Copyright, 2004 © Adam Czajka

5 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Aplikacja Obiekt Form1 Form2 Obiekt niemodalny Copyright, 2004 © Adam Czajka

6 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Aplikacja Obiekt Form1 Form2 Obiekt modalny Obiekt Form1 Form3 Form2 Copyright, 2004 © Adam Czajka

7 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Aplikacja Obiekt Form1 Form2 Obiekt modalny Obiekt Form1 Form4 Form2 Copyright, 2004 © Adam Czajka

8 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Aplikacja Obiekt Form1 Form2 Application.Exit(); Copyright, 2004 © Adam Czajka

9 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Aplikacja Obiekt Form1 Copyright, 2004 © Adam Czajka

10 Copyright, 2004 © Adam Czajka
Aplikacja „Cykl życia” aplikacji .NET Aplikacja Koniec programu Copyright, 2004 © Adam Czajka

11 Copyright, 2004 © Adam Czajka
Aplikacja Obiekt Application Wszystkie komponenty są statyczne Właściwości : public static string CompanyName {get;} public static CultureInfo CurrentCulture {get; set;} public static InputLanguage CurrentInputLanguage {get; set;} public static string ExecutablePath {get;} public static string ProductName {get;} public static string ProductVersion {get;} public static string StartupPath {get;} public static string UserAppDataPath {get;} public static RegistryKey UserAppDataRegistry {get;} Copyright, 2004 © Adam Czajka

12 Copyright, 2004 © Adam Czajka
Aplikacja Obiekt Application Wszystkie komponenty są statyczne Metody : public static void DoEvents(); public static void EnableVisualStyles(); public static void Exit(); public static void Run( Form mainForm ); Zdarzenia : public static event EventHandler Idle; public static event ThreadExceptionEventHandler ThreadException; Copyright, 2004 © Adam Czajka

13 Copyright, 2004 © Adam Czajka
Aplikacja AssemblyInfo.cs Copyright, 2004 © Adam Czajka

14 Copyright, 2004 © Adam Czajka
Aplikacja Form1.cs Copyright, 2004 © Adam Czajka

15 Copyright, 2004 © Adam Czajka
WinForm Obiekt formy (okna) Pola – odpowiedzialne za wygląd okienka i jego „zachowanie” Zdarzenia – pozwalają reagować na sytuacje zachodzące wewnątrz okienka Metody – pozwalają kontrolować okienko Copyright, 2004 © Adam Czajka

16 Copyright, 2004 © Adam Czajka
WinForm – właściwości 1 Kolor tła Rysunek tła Typ kursora myszki Czcionka Kolor tekstu Rodzaj ramki Tytuł okienka Nazwa obiektu Copyright, 2004 © Adam Czajka

17 WinForm – właściwości 2 Automatyczne skalowanie okienka
Automatyczne „przewijanie” okienka położenie okienka na ekranie Rozmiar minimalny okienka Rozmiar maksymalny okienka Rozmiar początkowy okienka Przycisk akceptacji „okna dialogowego” Przycisk anulowania „okna dialogowego” Copyright, 2004 © Adam Czajka

18 WinForm – właściwości 3 Menu systemowe włączone Ikona programu
Przycisk maksymalizacji okna widoczny Menu programu Przycisk minimalizacji okna widoczny Stopień przeźroczystości okna Okno widoczne na „pasku zadań” Okno typu „Top-Most” Kolor przeźroczysty Copyright, 2004 © Adam Czajka

19 WinForm – zdarzenia „klik” myszką wewnątrz okienka
Podwójny „klik” myszką wewnątrz okienka Odrysowywanie okienka Zamykanie okienka Ładowanie okienka Copyright, 2004 © Adam Czajka

20 Copyright, 2004 © Adam Czajka
WinForm – metody public void Activate(); public void Close(); public Graphics CreateGraphics(); public void Hide(); public void Invalidate(); public virtual void Refresh(); public void Show(); public DialogResult ShowDialog(); public DialogResult ShowDialog( IWin32Window owner ); public void Update(); public bool Validate(); DialogResult.None, DialogResult.OK, DialogResult.Yes, DialogResult.No, DialogResult.Cancel Copyright, 2004 © Adam Czajka

21 Tworzenie i zamykanie formy - okienka
WinForm Tworzenie i zamykanie formy - okienka private void button1_Click(object sender, System.EventArgs e) { //utworzenie nowej formy - dialogu Form dlg1 = new Form(); dlg1.Show(); } private void InformationProcessed() { // ustawienie wyniku wykonania dla formy – powoduje zamknięcie // bieżacej formy this.Close(); } Copyright, 2004 © Adam Czajka

22 Tworzenie i zamykanie formy - okienka
WinForm Tworzenie i zamykanie formy - okienka private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (MessageBox.Show("Czy zakończyć program ?", "Pytanie", MessageBoxButtons.YesNo) == DialogResult.No) e.Cancel = true; } Copyright, 2004 © Adam Czajka

23 Tworzenie i zamykanie formy - dialogu
WinForm Tworzenie i zamykanie formy - dialogu private void button1_Click(object sender, System.EventArgs e) { //utworzenie nowej formy - dialogu Form dlg1 = new Form(); dlg1.ShowDialog(); } private void InformationProcessed() { // ustawienie wyniku wykonania dla formy – powoduje zamknięcie // bieżacej formy DialogResult = DialogResult.Yes; } Copyright, 2004 © Adam Czajka

24 Wstawianie komponentów
WinForm Wstawianie komponentów Obiekt „zegara”, każdy obiekt w ramach formy jest identyfikowany poprzez swoją unikalną nazwę – tu: timer1 Copyright, 2004 © Adam Czajka

25 Wstawianie komponentów
WinForm Wstawianie komponentów Aktywacja zegara będzie następowała w obsłudze zdarzenia „OnLoad”, a deaktywacja w procedurze obsługi zdarzenia „OnClosing” Zegar włączony ? Interwał czasowy Nazwa obiektu Copyright, 2004 © Adam Czajka

26 Wstawianie komponentów
WinForm Wstawianie komponentów int licznik = 0; private void Form1_Load(object sender, System.EventArgs e) { timer1.Interval = 1000; timer1.Enabled = true; } private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { timer1.Enabled = false; } private void timer1_Tick(object sender, System.EventArgs e) { licznik++; this.Text = licznik.ToString("D6"); } Copyright, 2004 © Adam Czajka

27 Wstawianie komponentów
WinForm Wstawianie komponentów private void timer1_Tick(object sender, System.EventArgs e) { licznik++; if (licznik == 30) { Application.Exit(); return; } else { this.Text = licznik.ToString("D6"); } } Następuje bezwarunkowe zakończenie działania aplikacji Copyright, 2004 © Adam Czajka

28 Wstawianie komponentów
WinForm Wstawianie komponentów Wstawiamy przycisk Copyright, 2004 © Adam Czajka

29 Wstawianie komponentów
WinForm Wstawianie komponentów private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show("To jest test "); } Po naciśnięciu przycisku, licznik cały czas zlicza sekundy Copyright, 2004 © Adam Czajka

30 Wstawianie komponentów
WinForm Wstawianie komponentów using System.Threading; private void button1_Click(object sender, System.EventArgs e) { for (int i=0; i<60; i++) { Thread.Sleep(500); } } Po naciśnięciu przycisku, licznik zatrzymuje się na okres 30 sekund Copyright, 2004 © Adam Czajka

31 Wstawianie komponentów
WinForm Wstawianie komponentów using System.Threading; private void button1_Click(object sender, System.EventArgs e) { for (int i=0; i<60; i++) { Application.DoEvents(); Thread.Sleep(500); } } Po naciśnięciu przycisku, licznik nie zatrzymuje się Copyright, 2004 © Adam Czajka

32 Wstawianie komponentów
WinForm Wstawianie komponentów Application.DoEvents() Umożliwia przetworzenie wszystkich oczekujących zdarzeń (także tych związanych z odrysowywaniem okienka) Zaburza jednowątkowy charakter programu – teraz możliwe jest rozpoczęcie wykonywania obsługi drugiego zdarzenia bez zakończenia obsługi zdarzenia pierwszego Konieczne jest stosowanie obiektów synchronizujących dostęp do sekcji krytycznych programu !!! Copyright, 2004 © Adam Czajka

33 Copyright, 2004 © Adam Czajka
WinForm Własne okno dialogowe Copyright, 2004 © Adam Czajka

34 Copyright, 2004 © Adam Czajka
WinForm Własne okno dialogowe Copyright, 2004 © Adam Czajka

35 Copyright, 2004 © Adam Czajka
WinForm Własne okno dialogowe Copyright, 2004 © Adam Czajka

36 Copyright, 2004 © Adam Czajka
WinForm Własne okno dialogowe private void button1_Click(object sender, System.EventArgs e) { Form2 dlg = new Form2(); if (dlg.ShowDialog(this) == DialogResult.Yes) { MessageBox.Show("TAK"); } else { MessageBox.Show("NIE"); } } Copyright, 2004 © Adam Czajka

37 Wstawianie komponentów
WinForm Wstawianie komponentów Po naciśnięciu przycisku, pojawia się modalne okno dialogowe - licznik nie zatrzymuje się Po upływie 30 sekund, niezależnie od stanu aplikacji jest ona bezwzględnie zamykana - metoda Application.Exit() Po naciśnięciu przycisku, modalne okno dialogowe zamyka się i pojawia się okno z komunikatem Copyright, 2004 © Adam Czajka

38 Copyright, 2004 © Adam Czajka
Podsumowanie Aplikacja Obiekt WinForm Copyright, 2004 © Adam Czajka


Pobierz ppt "C# Windows Forms Zastosowania Informatyki Wykład 3"

Podobne prezentacje


Reklamy Google