ng dẫ n lậ p trình VB.NET Chư ơ ng 15: Qu n lý Windows Forrms
Biên so n: Phạ m Đứ c Lậ p - 1 - Add: cnt-44-dh, VIMARU
Chư ơ ng 15:
Qu n lý Windows Forms
--------oOo--------
N i dung thả o luậ n:
- Thêm vào m t form mớ i cho chư ơ ng trình
-Thay đ i vị trí củ a form trên màn hình Windows Desktop
- Thêm m t điề u khiể n vào form khi chư ơ ng trình đang ch y
-Thay đ i canh lề củ a các đố i tư ng trên form
- Ch đị nh đố i tư ng khở i độ ng chư ơ ng trình
Trong chư ơ ng này chúng ta sẽ họ c cách thêm nhi u form vào d án để xử nhậ p, xuấ t
hi n thị các thông điệ p đặ c bi t. Ta cũng sử dụ ng thuộ c tính DesktopBounds để đị nh vị trí
thay đ i kích thư c form, thêm vào các thành ph n điề u khiể n khi chư ơ ng trình đang
ch y…
Chú ý:
- Trong VB.NET mu n đ t thuộ c tính cho form thứ hai trong dự án cầ n phả i
tham chiế u đế n thể hiệ n (instance) củ a biế n form đó
- th đặ t đ nh lạ i vị trí, kích thư c form lúc chư ơ ng t rình đang ch y bằ ng
cách s dụ ng cử a sổ Form Layout. Tuy nhiên b n cũng có thể sử dụ ng thu c tính
DesktopBound m i do VB.NET không còn h trợ Form Layout.
- Thu c tính mớ i Anchor cho phép xác đị nh kích thư c giớ i hạ n tố i đa và t i thiể u
ngư i dùng đư c ph ép thay đ i lên form. Thu c tính Dock cho phép Form
hay đ i tư ng có thể neo vào m t cạ nh cử a sổ hay form khác.
- Trong VB.NET form MDI cha ch là m t form bình thư ng thuộ c tính
IsMdiContainer đ t là TRUE. Các form con thu c tính MdiParent trỏ đế n tên
c a form MDI cha.
1. Thêm m t Form mớ i vào chư ơ ng trình
Ta th thêm r t nhiề u form vào chư ơ ng trình VB.NET. M i form thêm vào đư c coi là
m t đố i tư ng kế thừ a từ lớ p System.Windows.Forms.Form. Các form thêm vào th tự
l n lư t và tên ơ ng ng là F orm1.vb, Form2.vb,…B n thể thay đổ i tên m c đị nh bằ ng
cách ch đị nh tên lúc Add NewItem hay t i cử a sổ Solution Explorer.
Cách s d ng form:
ng dẫ n lậ p trình VB.NET Chư ơ ng 15: Qu n lý Windows Forrms
Biên so n: Phạ m Đứ c Lậ p - 2 - Add: cnt-44-dh, VIMARU
B n có thể cho tấ t cả các form trong chư ơ ng trình hi n thị cùng lúc hay ch hiể n thị khi cầ n
thiế t. Khi cho hiể n th lớ n n mộ t form thì b n thể kiể m soát thứ tự form hay cho
ngư i dùng hoán chuy n giữ a các form.
2. Làm vi c vớ i các dự án có nhiề u form
Bài t p sau đây chúng ta sẽ sử dụ ng mộ t dự án vớ i hai form. Bạ n sao chép bài Luckyseven
trong chư ơ ng 10 vào thư m c bài t p củ a chư ơ ng 15. Chúng ta sẽ thêm m t form thể hiệ n
tr giúp cho chư ơ ng trình.
2.1. Thêm form vào d án
B n khở i độ ng giả i pháp Luckyseven ta vừ a sao chép.
Nh p đôi vào form1.vb trong c a sổ Solution Explorer để hiể n thị form chính.
B n R-Click vào d án Luckyseven và ch n Add | New Item. Bạ n chọ n thêm vào m t
Windows Form và gõ tên là HelpInfo.vb:
Thêm m t số điề u khiể n vào trong form m i này:
- Thêm vào m t nhãn đ t thuộ c tính text là “Chư ơ ng trình Luckyseven S 7 may
m n”
- Thêm m t TextBox ngay i nhãn, thu c tính MultiLine là True, Scrollbar
Both
- Thêm m t nút Button1, thuộ c tính Text là OK
Giao di n như hình:
ng dẫ n lậ p trình VB.NET Chư ơ ng 15: Qu n lý Windows Forrms
Biên so n: Phạ m Đứ c Lậ p - 3 - Add: cnt-44-dh, VIMARU
Viế t mã:
Form y ta s thể hiệ n nộ i dung file Readme.txt trong chư ơ ng trư c chúng ta đã biế t.
Trư c hế t ta dùng l p StreamReader đ đọ c thông tin củ a file text và gán cho thu c tính
Text c a TextBox1.
Trư c hế t, khai báo sử dụ ng lớ p này đầ u form:
Imports System.IO
Sau đó t o sự kiệ n form HelpInfo_Load b ng ch nhấ p đôi chuộ t vào form hay ch n từ
danh sách th xuố ng như đã biế t. Chúng ta nhậ p đoạ n mã sau:
Dim StreamToDisplay As StreamReader
StreamToDisplay = New StreamReader _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh vb.net\" & _
"Tung buoc lap trinh vb.net\15_Chapter15\Bai tap\LuckySeven\" & _
"LuckySeven\Readme.txt")
TextBox1.Text = StreamToDisplay.ReadToEnd
StreamToDisplay.Close()
Vi c dùng l p StreamReader để điề n nộ i dung mộ t file văn bả n vào textbox chúng ta đã
biế t trong chư ơ ng h c về x lý file text và chu i. đ ây thay đư ng dẫ n củ a file
Readme.txt chúng ta th kéo thả từ trong dự án củ a mình. Đ kéo thả thì file đó phả i
hi n lên trong c a sổ Solution Explorer. Muố n hiệ n lên thì b n th chép vào thư
m c chứ a dự án, trở về cử a sổ Solution Explorer nh p vào nút Refresh hay copy tr c
tiế p vào c a sổ Solution Explorer.
T o thủ tụ c Button1_Click đ ngư i dùng click vào nút OK thì đóng form tr giúp:
Me.DialogResult = Windows.Forms.DialogResult.OK
Bây gi làm thế nào đ hiệ n thị form thứ hai này vì d án củ a chúng ta có tớ i hai form?
ng dẫ n lậ p trình VB.NET Chư ơ ng 15: Qu n lý Windows Forrms
Biên so n: Phạ m Đứ c Lậ p - 4 - Add: cnt-44-dh, VIMARU
2.2. Hi n thị Form thứ hai sử dụ ng thủ tụ c sự kiệ n
Đ làm đư c điề u này ta s thêm m t nút form thứ nhấ t Form1.vb thêm th tụ c triệ u
g i form thứ hai.
B n mở form1.vb và thêm vào nút nh n đặ t thuộ c tính Text cho “Tr giúp”, thuộ c
tính name là btnHelp.
T o thủ tụ c btnHelp_Click b ng cách double click vào nút Tr giúp và nh p đoạ n mã
sau:
Dim frmtrogiup As New HelpInfo()
frmtrogiup.ShowDialog()
Hai phát bi u này cho phép tri u gọ i form thứ hai. N đã nói trư c, để tham chiế u đế n
form th hai bạ n cầ n tư ng minh form đó. đây chúng ta khai báo biế n frmtrogiup
ki u HelpInfo nh phát biể u New HelpInfo(). Sau khi đã kh i tạ o chúng ta thể hiể n thị
form b ng cách gọ i đế n phư ơ ng th c ShowDialog(). Nế u đây b n gọ i form này b ng
phư ơ ng th c Show() thì trong th tụ c Button1_Click củ a form HelpInfo bạ n cầ n gọ i
phư ơ ng th c Me.Close thay cho phư ơ ng th c DialogResult.OK chúng ta đã dùng.
B n chạ y chư ơ ng trình b ng cách ấ n F5 và n nút Trợ giúp để hiể n t h form thứ hai:
3. Đ nh vị form trên màn hình Desktop
B n thể đị nh vị form trên màn hình desktop khi xu t hiệ n b ng thuộ c tính
DesktopBounds. cho phép đ nh vị trí củ a form vớ i góc phả i i góc trái trên. Đơ n
v tinh là pixel.
ng dẫ n lậ p trình VB.NET Chư ơ ng 15: Qu n lý Windows Forrms
Biên so n: Phạ m Đứ c Lậ p - 5 - Add: cnt-44-dh, VIMARU
Ngoài ra b n cònth sử dụ ng thuộ c tính StartPosition vớ i các đặ c điể m: Manual b ng
tay, CenterScreen gi a màn hình, WindowsDefaultLocation v trí mặ c đị nh,
WindowsDefaultBound kích thư c mặ c đị nh.
3.1. S dụ ng thuộ c tính StartPosition
Bây gi chúng ta sẽ dùn g thu c tính StartPosition và DestopBounds để đị nh vị trí form qua
bài t p MyDesktopBound sau đây.
B n tạ o mớ i giả i pháp và thêm vào m t dự án cùng tên MyDesktopBound và làm như sau:
- M properties củ a form1.vb.
- Thay thu c tính StartPosition thành CenterScreen và ch y thử . Form s xuấ t hiệ n
chính giữ a màn hình.
-Đóng chư ơ ng trình, đặ t thuộ c tính StarPosition thành Manual. V i thuộ c tính này
b n cầ n đ t lạ i thuộ c tính Location, ta đặ t thuộ c tính này là 100, 50.
- Ch y thử chư ơ ng trình. Form s hiể n thị theo tọ a đ ta đãđặ t.
3.2. S dụ ng thuộ c tính DestopBounds
Đ t thêm nút nh n lên form1, đ t text là “T o form mớ i”.
T o thủ tụ c Button1_Click và nh p mã như sau:
'Tạ o form thứ hai có tên Form2
Dim form2 As New Form()
nh nghĩa thuộ c tính Text và đư ng viề n cho form
form2.Text = "Form m i"
form2.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
'Ch đị nh vị trí củ a form đư c đặ t thủ công
form2.StartPosition = FormStartPosition.Manual
'Khai báo c u trúc Rectangle nắ m giữ kích thư c mớ i
'Góc trái trên (200,100)
'Chi u dài và cao (300,250)
Dim rectangle_form2 As New Rectangle(200, 100, 300, 250)
nh kích thư c củ a form sử dụ ng đố i tư ng rectangle trên
form2.DesktopBounds = rectangle_form2
'Hi n thị form
form2.ShowDialog()
B n chạ y chư ơ ng trình này b ng cách n F5. Nhấ n vào nút “t o form mớ i” để tạ o form thứ
hai. Form này v trí n ta đãđ nh. Form này không cho phép b n kéo lạ i kích thư c
như các form trư c đây do ta đãđặ t thuộ c tính FormBorderStyle c a form thành
FixedDialog.
3.3. Phóng to, thu nh và khôi ph c lạ i cử a sổ chư ơ ng trình
Ngoài ra b n cũng có thể phóng to, thu nhỏ hay khôi phụ c lạ i vị trí m c đị nh củ a form. Bạ n
có th thự c hiệ n điề u này khi thiế t kế hay khi chư ơ ng trình đang ch y.