Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "C# Windows Forms Zastosowania Informatyki Wykład 3 Copyright, 2004 © Adam Czajka."— Zapis prezentacji:

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

2 Spis treści Aplikacja Obiekt WinForm

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

4 Copyright, 2004 © Adam Czajka kolejka komuni katów start koniec komunikat ? WM_QUIT ? wywołaj procedurę obsługi TAK NIE 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 Aplikacja Cykl życia aplikacji.NET

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

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

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

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

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

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

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

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

13 Copyright, 2004 © Adam Czajka Aplikacja AssemblyInfo.cs

14 Copyright, 2004 © Adam Czajka Aplikacja Form1.cs

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

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

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

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

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

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

21 Copyright, 2004 © Adam Czajka WinForm 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(); } Tworzenie i zamykanie formy - okienka

22 Copyright, 2004 © Adam Czajka WinForm 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; } Tworzenie i zamykanie formy - okienka

23 Copyright, 2004 © Adam Czajka WinForm 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; } Tworzenie i zamykanie formy - dialogu

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

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

26 Copyright, 2004 © Adam Czajka 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"); }

27 Copyright, 2004 © Adam Czajka 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

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

29 Copyright, 2004 © Adam Czajka 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

30 Copyright, 2004 © Adam Czajka 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

31 Copyright, 2004 © Adam Czajka 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ę

32 Copyright, 2004 © Adam Czajka 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 !!!

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

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

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

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"); } }

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

38 Copyright, 2004 © Adam Czajka Podsumowanie Aplikacja Obiekt WinForm


Pobierz ppt "C# Windows Forms Zastosowania Informatyki Wykład 3 Copyright, 2004 © Adam Czajka."

Podobne prezentacje


Reklamy Google