Lập trình VB.NET - Bài 8_Những chức năng mới trong giao diện cửa sổ của VB.NET (Phần 1)

Xin nhắc lại là .NET Framework cho ta ba cách đểuser giao diện với chương

trình áp dụng, đó là Windows Forms (có khi được gọi tắt là WinForms), Web

Forms và Console applications. Lần lượt chúng ta sẽhọc qua cảba thứnầy.

Ngoài ra, kểtừ đầu tháng hai 2002, thầy VũNăng Hiềnsẽviết một loạt bài

riêng về ASP.NET. ASP.NET là hậu thân của ASP (Active Server Pages), cái

framework đểta lập trình trên Webserver.Microsoft dùng ASP đểthay thế cgiPerl (Common Gateway Interface - Practical Extraction and Report

Language), một ngôn ngữlập trình rất thịnh hành trên các Unix-based

Webserver. Sau nầy chính 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 nhưtrang Web (HTML) nhưng

bên trong có những mảnh chương trình viết bằng VBScript hay JavaScript (thật

ra script nào cũng được, kểcảPerlScript) nằm ởnhiều nơi. Các mảnh Script nầy

có thểtruy cập cơsởdữliệu đểsửa đổi hay lấy dữkiện ra đểhiển thịtại chỗ ấy

(nơi mảnh Script nằm trong trang ASP) đểtạo trang Web kết quả.

pdf12 trang | Chuyên mục: Visual Basic 6.0 | Chia sẻ: dkS00TYs | Lượt xem: 2560 | Lượt tải: 4download
Tóm tắt nội dung Lập trình VB.NET - Bài 8_Những chức năng mới trong giao diện cửa sổ của VB.NET (Phần 1), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
thí dụ trước đây ta đã nói qua, bây giờ ta tóm tắc những 
điểm căn bản của Windows Forms: 
• Một Windows Form thật sự là một class. Trong .NET không có từ đặc biệt 
như "form module" để dùng cho nó. 
• Vì một form là một class nên ta không thể load nó mà không nói thẳng 
thừng ra. Tức là trong VB6 nếu ta Show hay dùng đến một Form thì nó tự 
động được loaded. Chẳng những thế thôi, cái class Form2 được dùng 
như một variable Form2 luôn, tức là by default ta có một Object tên 
Form2. Trong .NET ta phải khai báo (declare) một variable tên myForm2 
chẳng hạn rồi instantiate form ấy như một Object của Form2 trước khi 
dùng nó. 
• Tất cả mọi form đều thừa kế từ class System.Windows.Forms.Form. 
• Giống như tất cả các classes trong .NET Framework, Windows Forms có 
constructors và destructors. Constructor của form tên là Sub New, đại 
khái giống như Sub Form_Load trong VB6. Destructor của form tên là Sub 
Dispose, đại khái giống như Sub Form_Unload trong VB6. 
• Cái visual forms designer của VS.NET nhét rất nhiều code để instantiate 
form và đặt các controls vào form. Đó là code mà đáng lẽ ta phải tự viết 
nếu ta dùng notepad để lập trình. Phần code nầy thay thế cái phần nằm ở 
đầu tệp .frm của VB6 để diễn tả các visual components của form. Mỗi lần 
ta thêm bớt các controls hay thay thế các properties của controls trên 
form thì code generated cho form được thay đổi theo. Do đó bạn nên 
tránh sửa đổi code ấy, trừ khi biết chắc mình đang làm gì, hay là bạn làm 
một phiên bản trước khi thay đổi để nếu lỡ kẹt thì restore code cũ. 
• Event được xử lý bằng cách linh động hơn. Các events chứa nhiều tin tức 
hơn. Một Event có thể được xử lý bởi nhiều controls cùng một lúc và mỗi 
control có một cách xử lý khác nhau. Ngược lại, nhiều Events khác nhau 
có thể được xử lý bằng một Event Handler duy nhất. 
Bạn tạo một chương trình Windows Forms bằng cách dùng IDE menu command 
File | New | Project.. để hiển thị giao thoại New Project và chọn Template 
Windows Application. 
Trong thí dụ nầy, khi bạn click nút OK thì một subfolder tên (Name:) 
WindowsApplication4 sẽ được tạo ra trong folder (Location:) 
E:\NET\HongDevelopment\LessonPreparation để chứa các tệp của 
Project. Sau nầy, khi bạn build, tức là compile chương trình, thì kết quả sẽ là một 
tệp .exe chứa trong folder 
E:\NET\HongDevelopment\LessonPreparation\WindowsApplication4\
bin. 
Dĩ nhiên trước khi click nút OK bạn có thể sửa Name: hay Location: tùy ý. 
Ngoài ra, vì bạn chọn Windows Application, nên project của bạn tự động có 
reference đến .NET component System.Windows.Forms.dll. 
Để xem lướt qua namespace System.Windows.Forms, bạn hãy thử xúc tiến tạo 
cái project WindowApplication4 nầy. Kế đó bạn chạy Object Browser bằng 
cách click hình tam giác nhỏ của Class View icon rồi chọn Object Browser: 
Trong Object Browser, expand cái System.Windows.Forms tree để xem những 
types được định nghĩa bên trong và các class members của Form: 
Kiến trúc (Architecture) của Windows Forms ? 
Nếu bạn xem gia phả của form, bạn sẽ thấy tổ phụ (đời thứ nhất) nó là class 
Object, còn form là con cháu đời thứ bảy. Dưới đây là cái cây của gia phả form 
và một ít chú thích: 
Thứ bậc các classes Chú thích 
Object Ông tổ trong .NET, superclass cao nhất từ đó sanh ra con cháu. 
 MarshalByRefObject Cung cấp các code cần thiết để quản lý cuộc đời của objects. 
 Component 
Cung cấp sự gầy dựng căn bản của IComponent 
interface và cho phép các chương trình khác nhau dùng 
chung một object 
 Control 
Đây là base class của mọi component dùng để hiển thị. 
Nó hỗ trợ những khả năng liên hệ đến vóc dáng và 
công tác hiển thị từ Show, BringtoFront, Font, Color 
cho đến Dock, Anchor. Ngoài ra nó còn cung cấp các 
Events của keyboard, mouse và có method WndProc 
để cho ta truy cập các thông điệp của Windows. 
 ScrollableControl Cung cấp chức năng tự động cuốn khi có chứa bên trong một control cần thêm chỗ để hiển thị. 
 ContainerControl Cho phép một component chứa các controls khác. 
 Form Cửa sổ chính của một chương trình. 
Các chức năng mới của Windows Forms 
Những Controls tàn hình được chứa riêng 
Một thay đổi rất tốt trong .NET từ VB6 là những controls không hiển thị lúc chạy 
thì khi thiết kế chúng được chứa trong một cái mâm riêng phía dưới. Thí dụ như 
trong hình dưới đây ta có Timer, Tooltip, Menus và các Dialogs được cho nằm 
trong một component Tray. 
Muốn thay đổi properties của Control nào, ta chỉ cần chọn nó rồi right click và 
chọn Properties. 
Chọn Startup Form 
Để chỉ định StartUp Form của chương trình, bạn cần phải mở cửa sổ Properties 
của Project để đánh vào Startup Object. Bạn có thể làm điều ấy bằng cách 
dùng IDE menu command Project | Properties hay right click tên của Project 
trong Solution Explorer rồi chọn Properties. 
Vị trí ban đầu 
Nhiều lúc ta muốn form hiện ra ngay giữa màn ảnh khi chương trình khởi động. 
VB.NET có thể làm việc ấy tự động nếu bạn set property StartPosition của nó 
thành CenterScreen. Các vị trí khởi đầu bạn có thể set được liệt kê dưới đây: 
Trị số Vị trí khởi đầu Kết quả 
Manual Hiển thị form ở vị trí theo giá trị của property Location của form 
CenterScreen Hiển thị form ở ngay giữa màn ảnh 
CenterParent Hiển thị form ở ngay giữa form chủ (owner) của nó 
WindowsDefaultLocation Hiển thị form ở vị trí default của cửa sổ 
WindowsDefaultBounds Hiển thị form ở vị trí default của cửa sổ, với kích thước default của cửa sổ 
Borders của Form 
Thay đổi property FormBorderStyle sẽ ảnh hưởng những gì user có thể thay 
đổi hay dùng về MaximizeBox, MinimizeBox, SizeGripStyle (mấy cái gạch chéo ở 
góc dưới phải của cửa sổ) và HelpButton. 
Luôn luôn nằm trên hết 
Một số chương trình có khả năng luôn luôn nằm trên hết, ngay cả khi nó không 
có focus. Để thực hiện điều nầy trong VB6 ta phải gọi API. Trong VB.NET, forms 
có một property mới tên là TopMost. Chỉ cần set TopMost của một form thành 
True thì nó luôn luôn nằm trên hết. 
Owned Forms (Forms có chủ) 
Khi một form có chủ, nó được minimized và closed theo form chủ của nó. Owned 
forms, đôi khi còn được gọi là forms nô lệ, luôn luôn nằm lên trên form chủ của 
nó. Dầu vậy, nó không cản trở form chủ nhận focus. 
Ta dùng method AddOwnedForm của form chủ để cho thêm owned form vào 
collection of OwnedForms của nó như 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ủ có thể truy cập collection của các forms nô lệ qua property 
OwnedForms. Dưới đây là code để loop qua các forms nô lệ của một 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 
Form chủ có thể cắt bỏ (remove) một form nô lệ bằng cách dùng method 
RemoveOwnedForm như: 
 Me.RemoveOwnedForm(myForm2) 
Khi một form không còn là nô lệ nữa, nó không hẳn bị unloaded, chỉ trở thành 
một form tự do (không còn liên hệ với form chủ nữa) thôi. 
Chú ý sự khác biệt giữa form nô lệ và TopMost form là form nô lệ chỉ nằm trên 
form chủ nó, trong khi TopMost form nằm trên tất cả mọi forms khác. TopMost 
form cũng không bị minimized hay closed khi một form nào khác của chương 
trình bị minimized hay closed. 
Không phải mọi controls đều bị khoá (locked) 
Trong Vb6, ta có option Lock Controls trong Format menu. Khi ta chọn Option 
nầy cho một form, tất cả controls đều bị khóa, ngay cả những controls mới được 
để vào mặt form sau nầy. 
Trong VB.NET, ta cũng có option Lock Control trong Format menu hay khi ta 
right click một nhóm controls đã được chọn trên form. Nhưng thao tác khóa nầy 
chỉ hiệu lực đối với các controls có sẵn trên form mà thôi. Một control mới được 
đặt lên form sau đó sẽ không bị khóa. Điều nầy cho phép ta khóa những controls 
đã được để đúng vị trí, rồi tiếp tục sắp đặt các controls mới mà không ngại vô 
tình làm di chuyển vị trí các controls cũ. 
Độ đậm (Opacity) của Form 
Có một property mới của form rất thú vị để dùng, dù rằng sự ích lợi hay mục 
đích của áp dụng không rõ ràng. Đó là ta có thể thay đổi độ đậm của một form. 
Ta có thể làm cho nó trong suốt khi set property Opacity của form bằng 0, hay 
cho nó mờ mờ như ma nếu trị số của Opacity ít hơn 1. Bạn hãy thử đánh code 
dưới đây vào một form cho Button1 chẳng hạn, rồi chạy chương trình và 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 = 0 To 1 Step 0.01 
 ' Opacity có trị số từ 0 (trong suốt) đến 1 (đậm đặt) 
 Me.Opacity = i 
 Next 
End Sub 
Form properties cho Cancel Button và Default Button 
Trong VB6, ta có thể set một button để nó như được clicked khi thật ra user bấm 
phím Esc. Ta thực hiện điều nầy bằng cách set property Cancel của button ấy 
thành True. Nó được gọi là Cancel button. 
Tương tự như thế, nếu ta set property Default của một button thành True, nó 
được gọi là Default button, khi user bấm phím Enter Default button coi như 
được clicked. 
Trong VB.NET ta cũng có thể dùng các chức năng ấy, nhưng bây giờ ta không 
đá động gì đến property nào của các buttons, mà lại set các properties 
CancelButton và AcceptButton của chính form. 
Khi ta click bên phải của property AcceptButton trong cửa sổ Properties thì danh 
sách các buttons có sẵn trên form được liệt kê ra để ta chọn như dưới đây: 
Ngoài ra ta cũng có thể chọn các CancelButton và AcceptButton lúc đang chạy 
chương trình, nhất là khi ta muốn bổ nhiệm các công tác nầy cho những buttons 
khác vì form đang làm việc trong một trạng thái khác như trong code thí dụ dưới 
đây: 
Me.CancelButton = BtnCancel2 
Me.AcceptButton = BtnAccept2 
 Học Microsoft .NET
Vovisoft © 2000. All rights reserved. 
 Last Updated: Webmaster

File đính kèm:

  • pdfLập trình VB.NET - Bài 8_Những chức năng mới trong giao diện cửa sổ của VB.NET (Phần 1).pdf
Tài liệu liên quan