Các bài tập Microsoft .NET 1 phần 7 pps

18 241 0
Các bài tập Microsoft .NET 1 phần 7 pps

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các tập Microsoft NET 109 • Keyword using dùng thay keyword Imports VB.NET • C# case sensitive, tức phân biệt chữ hoa, chữ thường - thí dụ obj khác với Obj • Constructor method mang tên với class thay tên New VB.NET Ta thử qua dòng code Câu thứ định nghĩa namespace cho source file Trong C#, namespace phải tuyên bố rõ ràng (explicitly declared) code module namespace cslib Kế hai câu tuyên bố ta nhập System.Windows.Forms vblib: using System.Windows.Forms; using vblib; Câu kế tuyên bố cSharpclass thừa kế từ class Parent, để ý cách dùng dấu : thay keyword Inherits: public class cSharpclass : Parent Sau Constructor dùng tên class: public cSharpclass() { MessageBox.Show("Instantiating cSharpclass object, inheriting VB.NET Parent class", "CSharp Class"); } Để ý cách dùng MessageBox.Show giống hệt VB.NET để hiển thị message Tạo program Client Dùng menu command File | Add Project để thêm VB.NET Windows Application project cho solution Trong project ta dùng menu command Project | Add Reference để thêm references cho cslib vblib Right-click lên project Solution Explorer chọn làm Set As Startup Project để project chạy ta bấm F5 Các tập Microsoft NET 110 Bây đặt Button tên BtnStartDemo lên Form viết code để xử lý Event Click: Private Sub BtnStartDemo_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnStartDemo.Click Dim objCS As New cslib.cSharpclass() objCS.SayHello() End Sub Khi ta chạy program click button StartDemo ta thấy dialog cho biết Constructor cSharpclass gọi để instantiate object objCS: Tiếp theo dialog thứ nhì hiển thị message từ Sub SayHello mà objCS thừa kế từ BaseClass Parent: Thừa kế hình ảnh (Visual Inheritance) Các tập Microsoft NET 111 Cho đến ta bàn qua chức OO ngôn ngữ VB.NET, phần lớn nhắm vào đặc tính thừa kế Vì hình ảnh (Visual Components) VB.NET implemented ngơn ngữ lập trình quy khơng phải dùng cách thức khác biệt VB6 (tin tức diễn tả hình ảnh nằm phần đầu *.frm files), nên VB.NET hổ trợ Thừa kế hình ảnh (Visual Inheritance) cho Windows Forms cách tự nhiên Điều có nghĩa sau làm xong Windows Form với Textboxes, Labels, Listboxes v.v ta thừa kế để vơ thêm hình ảnh khác Ta bàn vô chi tiết chuyện tương lai Ta thừa kế từ hình ảnh Thí dụ ta thừa kế từ Textbox để tạo class Textbox mới, có thêm chức nhận keystrokes theo cách VNI hiển thị chữ Việt Unicode Cùng nguyên tắc thừa kế Windows Forms Controls áp dụng cho Web Forms Controls, tức ta SubClass Web Forms Control, cho thêm chức overriding số chức có sẵn Các tập Microsoft NET 112 Bài Những chức giao diện cửa sổ VB.NET (phần I) Xin nhắc lại NET Framework cho ta ba cách để user giao diện với chương trình áp dụng, Windows Forms (có gọi tắt WinForms), Web Forms Console applications Lần lượt học qua ba thứ Ngoài ra, kể từ đầu tháng hai 2002, thầy Vũ Năng Hiền viết loạt riêng ASP.NET ASP.NET hậu thân ASP (Active Server Pages), framework để ta lập trình Webserver Microsoft dùng ASP để thay cgi-Perl (Common Gateway Interface - Practical Extraction and Report Language), ngôn ngữ lập trình thịnh hành Unix-based Webserver Sau Microsoft mướn người ta port Perl qua WindowsNT Một chương trình ASP gồm có nhiều trang giống trang Web (HTML) bên có mảnh chương trình viết VBScript hay JavaScript (thật script được, kể PerlScript) nằm nhiều nơi Các mảnh Script truy cập sở liệu để sửa đổi hay lấy kiện để hiển thị chỗ (nơi mảnh Script nằm trang ASP) để tạo trang Web kết Trong ASP.NET, tất mảnh chương trình Script lấy riêng, để chung với viết lại dạng ngôn ngữ túy VB.NET hay C# Phần coding gọi code behind (code nằm phía sau) giống Event Handling Sub ta viết VB.NET cho Windows Forms Trong tương lai, bàn đến Web Forms ta học tổng quát ASP.NET dùng VB.NET chương trình đơn giản Sự quan trọng Windows Forms ? Windows Forms cách hiển thị ảnh tối tân Win32 bình thường Kỹ thuật nằm phía sau Windows Forms trước phát triển cho Windows Foundation Classes (WFC), để dùng Visual J++ Điều cắt nghĩa già dặn vững chải sản phẩm cịn tình trạng Beta Các tập Microsoft NET 113 Khi ta nghe nói đến NET với hứa hẹn ứng dụng Internet Web Forms Web Services, dễ cho ta tưởng Microsoft phải cung cấp Windows Forms cực chẳng cho trọn vẹn hàng Thật ra, Windows Forms phần base classes NET Framework Cái Namespace dùng cho System.Windows.Forms, Namespace chứa nhiều thứ đến đổi không cần phải dùng trực tiếp Windows API đồ hoạ (Graphics Drawings) VB6 Nhu cầu có áp dụng phía khách (client-based application) phong phú (rich), linh động (flexible) nhanh chóng (responsive) cịn Hiện nay, để tránh phí tổn cài đặt (deployment) chương trình, người ta bắt đầu có khuynh hướng đặt chương trình chạy Webserver, cho user sử dụng chúng qua WebBrowser Ngồi cơng chúng dùng Internet, hãng xưởng dùng Intranet (Intranet Internet chạy Local Area Network - mạng địa phương, khơng liên lạc với bên ngồi), nhiên giao diện Web không phong phú hay nhanh desktop dĩ nhiên cơng tác lập trình địi hỏi thời gian phát triển lâu Vì NET Framework chứa đầy đủ thư viện cần thiết cho chương trình, nên cài đặt NET Framework máy khách ta cần XCopy đến folders cần thiết có chứa tệp (files) chương trình kiện đủ Thực việc mạng địa phương (Local Area Network) dễ nhanh, chí ta tự động hóa cơng tác copy Trong mơ hình lập trình nhiều tầng (multi-tier programming model) mà ta gọi Windows DNA (Distributed Network Application), q trình xử lý cơng tác chia làm nhiều giai đoạn như: Kiểm chứng số user điền vào forms máy khách (user interface) Tính tốn (business logic) Truy cập sở liệu (database access) Và giai đoạn nói nằm computer khác Nếu dùng Internet giai đoạn nói chạy WebBrowser trang Web có chứa JavaScript routines để kiểm chứng số user Các tập Microsoft NET 114 đánh vào Còn giai đoạn chạy WebServer Dĩ nhiên giai đoạn phải chạy WebServer, nơi chứa sở kiện .NET cho phép ta lập trình giai đoạn để chạy Windows Forms Còn giai đoạn để y nguyên Như thế, giả dụ ta có hệ thống đặt hàng, ta cho telephone operators dùng desktop (Winforms) application với giao diện tối ưu hóa, chạy thật nhanh để phục vụ người đặt hàng điện thoại Trong khách hàng đặt hàng qua Internet WebBrowser bình thường Cả hai nhóm users dù có giao diện khác xài chung tầng business logic database access Đây ưu điểm quan trọng NET mà ý Nếu thiết kế khéo, ta lập trình để dùng chung hầu hết phần mềm desktop, distributed (phân tán), Internet Mobile (Mobile phone, Pocket-PC) Những điểm Windows Forms ? Trong học thí dụ trước ta nói qua, ta tóm tắc điểm Windows Forms: • Một Windows Form thật class Trong NET khơng có từ đặc biệt "form module" để dùng cho • Vì form class nên ta load mà khơng nói thẳng thừng Tức VB6 ta Show hay dùng đến Form tự động loaded Chẳng thơi, class Form2 dùng variable Form2 luôn, tức by default ta có Object tên Form2 Trong NET ta phải khai báo (declare) variable tên myForm2 chẳng hạn instantiate form Object Form2 trước dùng • Tất form thừa System.Windows.Forms.Form • Giống tất classes NET Framework, Windows Forms có constructors destructors Constructor form tên Sub New, đại khái giống kế từ class Các tập Microsoft NET 115 Sub Form_Load VB6 Destructor form tên Sub Dispose, đại khái giống Sub Form_Unload VB6 • Cái visual forms designer VS.NET nhét nhiều code để instantiate form đặt controls vào form Đó code mà ta phải tự viết ta dùng notepad để lập trình Phần code thay phần nằm đầu tệp frm VB6 để diễn tả visual components form Mỗi lần ta thêm bớt controls hay thay properties controls form code generated cho form thay đổi theo Do bạn nên tránh sửa đổi code ấy, trừ biết làm gì, bạn làm phiên trước thay đổi để lỡ kẹt restore code cũ • Event xử lý cách linh động Các events chứa nhiều tin tức Một Event xử lý nhiều controls lúc control có cách xử lý khác Ngược lại, nhiều Events khác xử lý Event Handler Bạn tạo chương trình Windows Forms cách dùng IDE menu command File | New | Project để hiển thị giao thoại New Project chọn Template Windows Application Các tập Microsoft NET 116 Trong thí dụ này, bạn click nút OK subfolder tên (Name:) WindowsApplication4 tạo folder (Location:) E:\NET\HongDevelopment\LessonPreparation để chứa tệp Project Sau này, bạn build, tức compile chương trình, kết tệp exe chứa folder E:\NET\HongDevelopment\LessonPreparation\WindowsApplication 4\bin Dĩ nhiên trước click nút OK bạn sửa Name: hay Location: tùy ý Ngồi ra, bạn chọn Windows Application, nên project bạn tự động có reference đến NET component System.Windows.Forms.dll Để xem lướt qua namespace System.Windows.Forms, bạn thử xúc tiến tạo project WindowApplication4 Kế bạn chạy Object Browser cách click hình tam giác nhỏ Class View icon chọn Object Browser: Các tập Microsoft NET 117 Trong Object Browser, expand System.Windows.Forms tree để xem types định nghĩa bên class members Form: Kiến trúc (Architecture) Windows Forms ? Các tập Microsoft NET 118 Nếu bạn xem gia phả form, bạn thấy tổ phụ (đời thứ nhất) class Object, cịn form cháu đời thứ bảy Dưới gia phả form thích: Thứ bậc classes Chú thích Ơng tổ NET, superclass cao từ sanh cháu Object MarshalByRefObject Component Control ScrollableControl ContainerControl Form Cung cấp code cần thiết để quản lý đời objects Cung cấp gầy dựng IComponent interface cho phép chương trình khác dùng chung object Đây base class component dùng để hiển thị Nó hỗ trợ khả liên hệ đến vóc dáng công tác hiển thị từ Show, BringtoFront, Font, Color Dock, Anchor Ngồi cịn cung cấp Events keyboard, mouse có method WndProc ta truy cập thông điệp Windows Cung cấp chức tự động có chứa bên control cần thêm chỗ để hiển thị Cho phép component chứa controls khác Cửa sổ chương trình Các chức Windows Forms Những Controls tàn hình chứa riêng Một thay đổi tốt NET từ VB6 controls khơng hiển thị lúc chạy thiết kế chúng chứa mâm riêng phía Thí dụ hình ta có Timer, Tooltip, Menus Dialogs cho nằm component Tray Muốn thay đổi properties Control nào, ta cần chọn right click chọn Properties Chọn Startup Form Các tập Microsoft NET 119 Để định StartUp Form chương trình, bạn cần phải mở cửa sổ Properties Project để đánh vào Startup Object Bạn làm điều cách dùng IDE menu command Project | Properties hay right click tên Project Solution Explorer chọn Properties Vị trí ban đầu Nhiều lúc ta muốn form ảnh chương trình khởi động VB.NET làm việc tự động bạn set property StartPosition thành CenterScreen Các vị trí khởi đầu bạn set liệt kê đây: Trị số Vị trí khởi đầu Kết Manual Hiển thị form vị trí theo giá trị property Location form CenterScreen Hiển thị form ảnh CenterParent Hiển thị form form chủ (owner) WindowsDefaultLocation Hiển thị form vị trí default cửa sổ WindowsDefaultBounds Hiển thị form vị trí default cửa sổ, với kích thước default cửa sổ Borders Form Các tập Microsoft NET 120 Thay đổi property FormBorderStyle ảnh hưởng user thay đổi hay dùng MaximizeBox, MinimizeBox, SizeGripStyle (mấy gạch chéo góc phải cửa sổ) HelpButton Luôn nằm hết Một số chương trình có khả ln ln nằm hết, khơng có focus Để thực điều VB6 ta phải gọi API Trong VB.NET, forms có property tên TopMost Chỉ cần set TopMost form thành True ln ln nằm hết Owned Forms (Forms có chủ) Khi form có chủ, minimized closed theo form chủ Owned forms, đơi cịn gọi forms nô lệ, luôn nằm lên form chủ Dầu vậy, khơng cản trở form chủ nhận focus Ta dùng method AddOwnedForm form chủ thêm owned form vào collection of OwnedForms sau: Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myForm2 As New Form2() myForm2.Show() Me.AddOwnedForm(myForm2) End Sub Form chủ truy cập collection forms nô lệ qua property OwnedForms Dưới code để loop qua forms nô lệ form: Private Sub BtnListOwnedForms_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnListOwnedForms.Click Dim OwnedForm As Form For Each OwnedForm In Me.OwnedForms Console.Write(OwnedForm.Text) Next End Sub Các tập Microsoft NET 121 Form chủ cắt bỏ (remove) form nô lệ cách dùng method RemoveOwnedForm như: Me.RemoveOwnedForm(myForm2) Khi form khơng cịn nơ lệ nữa, khơng hẳn bị unloaded, trở thành form tự (khơng cịn liên hệ với form chủ nữa) Chú ý khác biệt form nô lệ TopMost form form nô lệ nằm form chủ nó, TopMost form nằm tất forms khác TopMost form không bị minimized hay closed form khác chương trình bị minimized hay closed Khơng phải controls bị khố (locked) Trong Vb6, ta có option Lock Controls Format menu Khi ta chọn Option cho form, tất controls bị khóa, controls để vào mặt form sau Trong VB.NET, ta có option Lock Control Format menu hay ta right click nhóm controls chọn form Nhưng thao tác khóa hiệu lực controls có sẵn form mà Một control đặt lên form sau khơng bị khóa Điều cho phép ta khóa controls để vị trí, tiếp tục đặt controls mà khơng ngại vơ tình làm di chuyển vị trí controls cũ Độ đậm (Opacity) Form Có property form thú vị để dùng, ích lợi hay mục đích áp dụng khơng rõ ràng Đó ta thay đổi độ đậm form Ta làm cho suốt set property Opacity form 0, hay cho mờ mờ ma trị số Opacity Bạn thử đánh code vào form cho Button1 chẳng hạn, chạy chương trình click Button1 ấy: Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Double For i = To Step 0.01 ' Opacity có trị số từ (trong suốt) đến (đậm đặt) Các tập Microsoft NET 122 Me.Opacity = i Next End Sub Form properties cho Cancel Button Default Button Trong VB6, ta set button để clicked thật user bấm phím Esc Ta thực điều cách set property Cancel button thành True Nó gọi Cancel button Tương tự thế, ta set property Default button thành True, gọi Default button, user bấm phím Enter Default button coi clicked Trong VB.NET ta dùng chức ấy, ta khơng đá động đến property buttons, mà lại set properties CancelButton AcceptButton form Khi ta click bên phải property AcceptButton cửa sổ Properties danh sách buttons có sẵn form liệt kê để ta chọn đây: Các tập Microsoft NET 123 Ngồi ta chọn CancelButton AcceptButton lúc chạy chương trình, ta muốn bổ nhiệm công tác cho buttons khác form làm việc trạng thái khác code thí dụ đây: Me.CancelButton = BtnCancel2 Me.AcceptButton = BtnAccept2 Các tập Microsoft NET 124 Bài Những chức giao diện cửa sổ VB.NET (phần II) Sự khác biệt Hộp Giao Thoại (Dialog Boxes) Trong VB6, hộp giao thoại thật form bình thường hiển thị với parameter vbModal, tức Modal mode Điều khíến cho hộp giao thoại trở nên form tích cực (active form) chương trình khuất Một hộp giao thoại cần phương tiện để liên lạc với form gọi (calling form) Trong VB6, ta giải vấn đề cách chế property tạm gọi Action Ta dùng Read-only property Action sau hộp giao thoại có hai buttons, OK Cancel: ' VB6 code used for Dialog Boxes Public Enum dialogAction actionOK = actionCancel = End Enum Dim mAction As dialogAction Public Property Get Action() As dialogAction Action = mAction End Property Private Sub cmdOK_Click() ' Get here when user click the OK button mAction = actionOK ' Hide the Dialog Box to return control to calling form Me.Hide End Sub Các tập Microsoft NET 125 Private Sub cmdCancel_Click() ' Get here when user click the Cancel button mAction = actionCancel ' Hide the Dialog Box to return control to calling form Me.Hide End Sub Chú ý ta dùng Enumerated type dialogAction Nó có hai trị số: actionOK actionCancel Property Action thuộc loại enumerated type Khi user click button, ta set trị số cho local variable mAction Hide dialog box Cái Giao thoại phải dấu (hidden) khơng unloaded, calling form phải truy cập dialog box để đọc trị số property Action để biết user vừa click button Giả dụ ta đặt tên cho hộp giao thoại frmDialog Để gọi hộp giao thoại từ form khác VB6 ta code sau: Dim Dialog As frmDialog Set Dialog = New frmDialog ' Instantiate a Dialog Box ' Show dialog box in Modal mode Dialog.Show vbModal Nhưng hiển thị hộp giao thoại Sau hộp giao thoại Hide ta cịn phải truy cập để đọc trị số property Action Do ta cần phải viết thêm codes cho đầy đủ sau đây: Dim Dialog As frmDialog Set Dialog = New frmDialog ' Instantiate a Dialog Box ' Show dialog box in Modal mode Dialog.Show vbModal ' Get here after the dialog box has hidden, but still loaded ' Now process the Action Select Case Dialog.Action Case actionOK Các tập Microsoft NET 126 ' code goes here for normal processing Case actionCancel ' code goes here for user canceling End Select Unload Dialog ' Now we can unload the dialog box Có hai thay đổi quan trọng VB.NET, dùng ShowDialog DialogResult ShowDialog thay Show vbModal Argument vbModal khơng hỗ trợ VB.NET Thay vào đó, form dùng method ShowDialog Dưới so sánh coding VB6 VB.NET VB6 code: Dim Dialog As frmDialog Set Dialog = New frmDialog ' Instantiate a Dialog Box ' Show dialog box in Modal mode Dialog.Show vbModal VB.NET code: Dim Dialog As New frmDialog() ' Show dialog box in Modal mode Dialog.ShowDialog Để ý VB.NET hàng code đầu ta kết hợp hai chuyện khai báo instantiate form statement Hàng code cuối cho thấy thay đổi từ Show vbModal qua ShowDialog DialogResult Trong VB.NET, form khải thị method ShowDialog, dự bị sẵn property tên DialogResult để calling form truy cập DialogResult mang trị số enumerated sau đây: • DialogResult.Abort ... hình ảnh (Visual Inheritance) Các tập Microsoft NET 11 1 Cho đến ta bàn qua chức OO ngôn ngữ VB.NET, phần lớn nhắm vào đặc tính thừa kế Vì hình ảnh (Visual Components) VB.NET implemented ngôn ngữ... cho thêm chức overriding số chức có sẵn Các tập Microsoft NET 11 2 Bài Những chức giao diện cửa sổ VB.NET (phần I) Xin nhắc lại NET Framework cho ta ba cách để user giao diện với chương trình áp... project WindowApplication4 Kế bạn chạy Object Browser cách click hình tam giác nhỏ Class View icon chọn Object Browser: Các tập Microsoft NET 11 7 Trong Object Browser, expand System.Windows.Forms

Ngày đăng: 31/07/2014, 09:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan