Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałMichalina Kinal Został zmieniony 10 lat temu
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.