.NET Framework Technologia firmy Microsoft wprowadzona w 2002 roku



Podobne dokumenty
Programowanie w środowiskach graficznych. Wykład 2 Windows Forms

Biblioteka Windows Forms

Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem

Dodanie nowej formy do projektu polega na:

Visual Studio instalacja

Metodyka programowania. Visual Studio C# Formularze

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Metodyka programowania. Visual Studio C#

Instrukcja laboratoryjna cz.3

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Programowanie w technologii.net wykład 4 Aplikacja i okna

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Kurs programowania 2 - listy

Materiały do zajęć IX

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Szkoła Techniczno Ekonomiczna w Świdnicy. Języki i paradygmaty programowania - 8

Programowanie aplikacji okienkowych Windows

Lokalizacja Oprogramowania

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Microsoft IT Academy kurs programowania

Wykład 6 Dziedziczenie cd., pliki

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie obiektowe

Programowanie obiektowe zastosowanie języka Java SE

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Wyjątki i obsługa błędów

Programowanie obiektowe

Zdarzenie Zachodzi gdy Kolejność zdarzeń Kolejność Zdarzenie Opis uwaga: CausesValidation True.

I - Microsoft Visual Studio C++

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Programowanie w środowiskach graficznych. Wykład 1 OS, Podstawy Windows API

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie w środowiskach graficznych. Wykład 1 OS, Podstawy Windows API

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Narzędzia 4. dr inż. Tadeusz Jeleniewski

Zaawansowane aplikacje internetowe - laboratorium

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Projektowanie aplikacji internetowych laboratorium

Visual Basic for Applications. Formatki tworzenie,

System jest głównym w hierarchii obszarem nazw, zdefiniowanym w bibliotece mscorlib.dll.

Programowanie obiektowe

Programowanie Komputerów

Programowanie obiektowe

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Obsługa SMS i telefonii

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

Db4o obiektowa baza danych wersja.net

Programowanie telefonów z Windows Phone 7, cz. 2

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {

Podstawy programowania. Wprowadzenie

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Języki i metody programowania Java. Wykład 2 (część 2)

Java Platform Micro Edition

Programowanie obiektowe

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Programowanie w Internecie. Java

Multimedia JAVA. Historia

C# /.NET. Copyright by 3bird Projects 2018,

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Laboratorium 10 - Web Services

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Delphi podstawy programowania. Środowisko Delphi

Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Zaawansowane aplikacje WWW - laboratorium

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Praca z aplikacją designer

Języki i metody programowania Java Lab2 podejście obiektowe

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Rozdział 4 KLASY, OBIEKTY, METODY

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Tworzenie własnych komponentów

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Systemy operacyjne na platformach mobilnych

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Qt sygnały i designer

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Programowanie w środowisku graficznym GUI

Opis. Wykład: 30 Laboratorium: 30

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Informatyka I : Tworzenie projektu

Transkrypt:

Windows Forms

Wykład 5-2.NET Framework Technologia firmy Microsoft wprowadzona w 2002 roku 1.1 2003, 2.0 2005, 3.0 2006, 3.5 2007 Integracja z wersjami systemu Windows: 1.0, 1.1, 2.0 dostępne dla: 98, NT 4.0, 2000+ wersja 1.1 w instalacji Windows Server 2003 Microsoft.NET Framework Version 2.0 Redistributable Package (x86) 22.4 MB instalator, 280 MB miejsca na dysku 3.0, 3.5 dostępne dla: XP SP2, 2003, Vista, 2008 wersja 3.0 w instalacji Windows Vista i Windows Server 2008 Microsoft.NET Framework 3.5 197 MB pełny instalator, do 500 MB miejsca na dysku

Wykład 5-3 Windows Forms (WinForms) Klasy należące do.net Framework używane do tworzenia aplikacji z graficznym interfejsem użytkownika dla systemów Windows przestrzeń nazw System.Windows.Forms Kategorie klas: podstawowe (np. Application, Form) kontrolki dziedziczące z klasy Control (np. Button) komponenty niedziedziczące z klasy Control (np. Timer, ToolTip) standardowe okna dialogowe (np. OpenFileDialog, PrintDialog)

Wykład 5-4 Przykładowy program using System; using System.Windows.Forms; namespace MyWindowsApp { public class MainWindow : Form { static void Main(string[] args) { Application.Run(new MainWindow()); MessageBox.Show("That s all", "Sample program", MessageBoxButtons.OK, MessageBoxIcon.Stop);

Wykład 5-5 Obsługa zdarzeń GUI jest oparty na zdarzeniach wynikających z interakcji z użytkownikiem Event handlers metody wywoływane do obsługi zdarzeń Dla każdego zdarzenia istnieje definicja sygnatury dla metody obsługi tego zdarzenia (delegate) dla każdego zdarzenia trzymana jest lista referencji do metod zapisanych na to zdarzenie w momencie wystąpienia zdarzenia wszystkie metody zapisane na tej liście są wywoływane (kolejność ich wywoływania nie jest zdefiniowana)

Wykład 5-6 Zdarzenia - przykład namespace MyApplication { public class MyForm : Form { public MyForm() { FormClosing += new FormClosingEventHandler(OnClosing); private void OnClosing(Object sender, FormClosingEventArgs e) { if (MessageBox.Show("Sure to close?", "Question", MessageBoxButtons.YesNo) == DialogResult.No) { e.cancel = true; namespace MyApplication { static class Program { static void Main() { Application.ApplicationExit += new EventHandler(Program_ApplicationExit); Application.Run(new MyForm()); private static void Program_ApplicationExit( Object sender, EventArgs e) { MessageBox.Show("That's all");

Wykład 5-7 Klasa Application Statyczne metody i właściwości do zarządzania aplikacją Run() Exit(), ExitThread() DoEvents() przydatne podczas długotrwałych obliczeń (umożliwia obsługę oczekujących zdarzeń) EnableVisualStyles() obsługa stylów Windows XP zdarzenie Idle wywoływane w momencie rozpoczęcia okresu bezczynności aplikacji zdarzenie ApplicationExit powiadomienie o zakończeniu pracy aplikacji właściwości: ExecutablePath, StartupPath

Wykład 5-8 Klasa Form Reprezentuje główne okna, okna dialogowe oraz okna robocze w aplikacji MDI Hierarchia dziedziczenia: Object MarshalByRefObject Component Control ScrollableControl ContainerControl Form

Wykład 5-9 Schemat funkcjonowania formularza 1. Constructor InitializeComponent() utworzenie i zainicjowanie wszystkich kontrolek potomnych dodanych do formularza przy pomocy Form Designer a z Visual Studio 2. Form.Load 3. Form.Activated 4. //... 5. Form.Deactivate 6. Form.FormClosing 7. Form.FormClosed 8. Dispose (interface IDisposable) miejsce zwalniania wszystkich zasobów używanych przez formularz 9. Destructor (wywoływany przez Garbage Collector)

Wykład 5-10 Rozmiar i pozycja formularza Widoczność Show() Visible Shown, VisibleChanged Właściwości: Region, Bounds, DesktopBounds, ClientRectangle Left, Top, Right, Bottom StartPosition, Location, DesktopLocation Width, Height, Size, ClientSize, MinimumSize, MaximumSize AutoSize, AutoSizeMode WindowState, TopMost

Wykład 5-11 Rozmiar i pozycja formularza c.d. Metody: SetBounds(), SetDesktopBounds(), SetDesktopLocation() CenterToParent(), CenterToScreen() BringToFront() PointToClient(), PointToScreen(), RectangleToClient(), RectangleToScreen() SizeFromClientSize() Zdarzenia: ClientSizeChanged, SizeChanged LocationChanged MaximumSizeChanged, MinimumSizeChanged Resize, ResizeBegin, ResizeEnd

Wykład 5-12 Wygląd formularza Właściwości: ForeColor, BackColor BackgroundImage, BackgroundImageLayout (Center, None, Stretch, Tile, Zoom) Cursor, Icon Font FormBorderStyle, ShowIcon, ControlBox, MinimizeBox, MaximizeBox, HelpButton, SizeGripStyle ShowInTaskbar, TopLevel Opacity TransparencyKey

Wykład 5-13 Wygląd formularza c.d. Metody: ResetBackColor(), ResetForeColor(), ResetFont(), ResetCursor() Zdarzenia: ForeColorChanged, BackColorChanged BackgroundImageChanged, BackgroundImageLayoutChanged FontChanged

Wykład 5-14 Mysz Zdarzenia myszy MouseMove, MouseDown, MouseUp, MouseClick, MouseDoubleClick MouseEventArgs {Button, Clicks, Delta, Location, X, Y MouseEnter, MouseHover, MouseLeave, MouseWheel Click, DoubleClick Klasa Cursor konstruktor wczytuje kursor ze strumienia, pliku, zasobów programu lub systemu Cursor właściwość formularza standardowe kursory: klasa Cursors, np. Cursors.WaitCursor

Wykład 5-15 Klawiatura Fokus CanFocus, Focused, ContainsFocus (z potomnymi) Focus() GotFocus, LostFocus (zdarzenia niskiego poziomu) Enter, Leave (dla kontrolek), Activated, Deactivate (dla formularzy) Zdarzenia 1. KeyDown (KeyEventArgs: KeyCode, KeyData, Modifiers, Alt, Control, Shift) 2. KeyPress (KeyPressEventArgs: KeyChar) 3. KeyUp (KeyEventArgs) Wyliczenie Keys (np. Keys.Q, Keys.F5, Keys.LShiftKey)

Wykład 5-16 Formularze modalne i niemodalne MODALNE Blokują dostęp do innych okien aplikacji ShowModal() Close() FormClosing FormClosed CancelButton, AcceptButton DialogResult NIEMODALNE Show() Close() FormClosing FormClosed

Wykład 5-17 Obsługa komunikatów Win32 private const int HTCAPTION = 0x0002; private const int WM_NCHITTEST = 0x0084; protected override void WndProc(ref Message m) { switch (m.msg) { case WM_NCHITTEST: m.result = (IntPtr)HTCAPTION; break; default: base.wndproc (ref m); break; Message: {HWnd, LParam, Msg, Result, WParam Form.Handle HWND jako typ IntPtr

Wykład 5-18 Ustawienia aplikacji Pliki.config do odczytu i zapisu z poziomu aplikacji XML Dynamiczne właściwości <configuration> <appsettings> <add key="welcome" value="hello my user"/> <add key="form1.opacity" value="1"/> </appsettings> </configuration> AppSettingsReader reader = new AppSettingsReader(); string s = (string)reader.getvalue("welcome", typeof(string));

Wykład 5-19 Zasoby Assembly jest zbiorem typów i zasobów dane binarne, pliki tekstowe, dźwiękowe, video, tablice ciągów znaków, ikony, obrazki, pliki XML Wielojęzyczne aplikacje problem z wielojęzycznym interfejsem użytkownika każdy zasób dodany do assembly może mieć określony swój język i kraj (np. "pl-pl", "en-us", "de-de", "de-at") satellite assemblies

Wykład 5-20 Pliki zasobów.txt tekstowy format nazwa/wartość prosty w użyciu dla zasobów tekstowych.resx format XML użyteczny dla tekstów i innych typów (np. obrazków).resources format binarny binary odpowiednik pliku XML Language=Polish Next=Następna strona Prev=Poprzednia strona tylko w tym formacie zasoby mogą być dołączone do assembly, pozostałe formaty muszą być konwertowane

Wykład 5-21 Tworzenie plików.resx ResXResourceWriter w = new ResXResourceWriter(@"C:\myRes.resx"); Image img = new Bitmap("pattern.bmp"); w.addresource("background", img); w.addresource("next", "Następny"); w.generate(); w.close(); <?xml version="1.0" encoding="utf-8"?> <root> (...) <data name="background" type="system.drawing.bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> Qk32BAAAAAAAAHYAAAAoAAAAMAAAADAAAAABAAQ AAAAAAAAAAADDDgAAww4AABAAAAAQAAAAAAAA/w... </value>

Wykład 5-22 Tworzenie plików.resources Konwersja z plików.resx i.txt resgen myres.resx myres.resources resgen polish.txt polish.resources Z poziomu kodu źródłowego ResourceWriter rw = new ResourceWriter(@"C:\myRes.resources"); Image img = new Bitmap("pattern.bmp"); w.addresource("background", img); w.addresource("helloworld", "Witaj świecie"); w.generate(); w.close();

Wykład 5-23 Dodawanie plików.resources do assembly Zasoby muszą być fizycznie włączone do assembly każde assembly zawiera manifest opisujący jego zawartość csc /t:exe /resource:polish.resources /resource:myres.resources myapp.cs

Wykład 5-24 Odczyt zasobów z poziomu kodu źródłówego ResourceManager rm = new ResourceManager( "myapp.myres", Assembly.GetExecutingAssembly()); MessageBox.Show(rm.GetString("HelloWorld")); picturebox.image = (Bitmap)rm.GetObject("background"); rm.releaseallresources();

Wykład 5-25 Użycie Visual Studio 2005 lub 2008 Dodawanie zasobów menu: Project / Add New Item / Resources File dwa sposoby dodawania zasobów: linked, embedded zostanie wygenerowana specjalna klasa z właściwościami odpowiadającymi poszczególnym zasobom (Resources1.Designer.cs) Edycja zasobów wbudowane edytory Visual Studio binarny, graficzny zewnętrzne edytory (np. Paint) można powiązać uruchamiane aplikacje z typami zasobów Kompilacja zasobów do assembly użycie resgen.exe

Wykład 5-26 Typy zasobów: Linked, Embedded Linked (domyślny typ dla VS) trzymane w zewnętrznych plikach w projekcie plik.resx zawiera tylko względną ścieżkę lub odnośnik do pliku na dysku podczas kompilacji zawartość plików jest kopiowana do tworzonego assembly Embedded dane zasobu są trzymane w pliku.resx (w tekstowej reprezentacji danych binarnych przy użyciu kodowania base64) W obu przypadkach zasoby są w całości włączane do wynikowego pliku (.exe lub.dll)

Wykład 5-27 Użycie klasy wygenerowanej przez VS internal class Resource1 { internal static string String1 { get { return ResourceManager.GetString( "String1", resourceculture); internal static System.Drawing.Bitmap FeatherTexture { get { object obj = ResourceManager.GetObject( "FeatherTexture", resourceculture); return ((System.Drawing.Bitmap)(obj)); picturebox1.image = Resource1.FeatherTexture; label1.text = Resource1.String1;