
Hư ớ 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ử lý nhậ p, xuấ t và
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 có
tham chiế u đế n thể hiệ n (instance) củ a biế n form đó
- Có thể đặ t và đị 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
mà 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 có thuộ c tính
IsMdiContainer đặ t là TRUE. Các form con có 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 có 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 có thứ tự
lầ n lư ợ t và tên tư ơ ng ứ ng là F orm1.vb, Form2.vb,…Bạ n có 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:

Hư ớ 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 hơ n mộ t form thì bạ n có 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 dư ớ i nhãn, thuộ c tính MultiLine là True, Scrollbar là
Both
- Thêm mộ t nút Button1, thuộ c tính Text là OK
Giao diệ n như hình:

Hư ớ 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 nà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 cá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 vì gõ đư ờ ng dẫ n củ a file
Readme.txt chúng ta có thể kéo thả nó 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 nó hiệ n lên thì bạ n có thể chép nó 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?

Hư ớ 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 và 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 nó là “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 hư đã 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 có
kiể u HelpInfo nhờ phát biể u New HelpInfo(). Sau khi đã khở i tạ o chúng ta có 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 có thể đị nh vị form trên màn hình desktop khi nó xuấ t hiệ n bằ ng thuộ c tính
DesktopBounds. Nó cho phép đị nh vị trí củ a form vớ i góc phả i dư ớ i và góc trái trên. Đơ n
vị tinh là pixel.

Hư ớ 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òn có thể 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 có vị trí như 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.

