Chương 1. Tìm hiểu môi trường .NET và Visual Basic.NET
1. Giới thiệu về .NET Framework
.NET được phát triển từ đầu năm 1998, lúc đầu có tên là Next Generation
Windows Services (NGWS). Nó là hạ tầng cơ bản được chuẩn hoá, độc lập với
ngôn ngữ lập trình, cho phép ta xây dựng, tích hợp, biên dịch, triển khai, chạy các
dịch vụ Web, XML, tiện ích hay thực hiện chương trình đa cấu trúc (phát triển bằng
các ngôn ngữ lập trình hỗ trợ .NET) trên hệ điều hành có cài đặt .NET Framework.
Nó sẽ trở thành một phần của MicroSoft Windows và sẽ được xuất qua các platform
khác, có thể ngay cả Unix. Mô hình ứng dụng của .NET Framework
2. Các thành phần của MicroSoft .NET framework
Các phần chính của Microsoft.NET Framework:7
.NET Framework bao gồm 2 phần chính là Common Language Runtime (CLR),
và .NET Framework Class Library (FCL).
CLR là thành phần chính của .NET Framework, quản lý mã có thể thực thi của
chương trình, quản lý các tiến trình, quản lý tiểu trình (Threading), quản lý bộ nhớ,
cung cấp dịch vụ để biên dịch, tích hợp và tác vụ truy nhập từ xa (Remoting)
FCL bao gồm tất cả các dịch vụ giao tiếp người sử dụng, điều khiển, truy cập dữ
liệu, XML, Threading, bảo mật
3. Tìm hiểu về Metadata
Metadata là một thuật ngữ mà người lập trình sử dụng dùng để mô tả dữ liệu về
dữ liệu. Môi trường .NET sử dụng Metadata để mô tả những đối tượng, các gói
assembly, dữ liệu ADO.NET. Nét đặc trưng của môi trường .NET là những đối
tượng có thể tự mô tả. Một chương trình có thể truy vấn thông tin về một đối tượng
để xác định phương thức, thuộc tính, trường mà đối tượng sẵn sàng hỗ trợ cho
chương trình sử dụng.
.NET có một file đặc biệt gọi là assembly sử dụng metadata để mô tả thông tin về
những lớp mà ứng dụng cung cấp và những thành phần mà ứng dụng sử dụng (như
các file dữ liêụ ), XML định nghĩa metadata, metadata định nghĩa các dữ liệu khác.
135 trang |
Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 424 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình Lập trình cơ sở dữ liệu (Phần 1), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n
Một số phương thức của form
Phương thức Ý nghĩa
Close Dùng để đóng form, nếu form được mở là duy nhất thì chương
trình tự động thoát
Hide Dùng để che dấu form đang mở
Activate Dùng để kích hoạt form
Show Dùng để nạp form lên màn hình
ShowDialog Dùng để nạp form lên màn hình dạng Modal
4.6.1. Chọn Form khởi động (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. Có thể làm điều ấy bằng cách
dùng chọn Project | Properties từ thanh thực đơn (menu bar) hay kích phải chuột
vào tên của Project trong Solution Explorer rồi chọn Properties.
85
4.6.2. Quy định vị trí ban đầu của form
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. VISUAL BASIC.NET có thể làm việc ấy tự động nếu bạn thiết lập thuộc
tính StartPosition của nó thành CenterScreen. Các vị trí khởi đầu bạn có thể thiết
lập được liệt kê dưới đây:
4.6.3. Thiết lập kiểu đường biên của Form
Thuộc tính FormBorderStyle sẽ ảnh hưởng những gì người sử dụng 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.
4.6.4. Thiết lập form 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 VB 6.0 ta phải gọi API. Trong
VB.NET, forms có một thuộc tính mới tên là TopMost. Chỉ cần thiết lập TopMost
của một form thành True thì nó luôn luôn nằm trên hết.
4.6.5. Forms có chủ (Owned Forms)
Khi một form có chủ, nó được thu nhỏ (minimized) và đóng (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
phương thức 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
86
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 thuộc tính
OwnedForms. Dưới đây là phần mã lệnh cho phép duyệt 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 phương thức
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.
4.6.6. Độ đậm (Opacity) của Form
Có một thuộc tính mới của form rất thú vị để dùng, đó là ta có thể thay đổi độ đậm
của một form khi thiết lập thuộc tính Opacity của form. Ví dụ:
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
4.6.7. Thuôc̣ tính cho Cancel Button và Default Button
87
Trong VB 6.0, ta có thể thiết lập một nút lệnh để nó như được click khi thật
ra người sử dụng bấm phím Esc. Ta thực hiện điều này bằng cách thiết lập thuộc
tính Cancel của nút ấy thành True. Nó được gọi là Cancel button. Tương tự như
thế, nếu ta thiết lập thuộc tính Default của một nút thành True, nó được gọi là
Default button, khi người sử dụng bấm phím Enter.
Trong VISUAL BASIC.NET ta cũng có thể dùng các chức năng ấy, nhưng
bây giờ ta không sử dụng các thuộc tính của các nút, mà lại thiết lập các thuộc tính
CancelButton và AcceptButton của chính form.
Khi ta click chuột sang bên phải của thuộc tính 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.
4.7. Hôp̣ thông báo (Message box)
Ta có thể sử dụng hộp thông báo để hiển thị thông báo và chờ sự trả lời của
người sử dụng. Khi người sử dụng kích vào một nút lệnh thì một số nguyên biểu thị
nút lệnh mà người sử dụng đã nhấn sẽ được trả về.
88
Để hiển thị hộp thoại thông báo ta có thể goị phương thức Show từ đối tươṇg
Messagebox theo cú pháp sau:
MessageBox.Show(message text)
MessageBox.Show(message text, caption)
MessageBox.Show(message text, caption, buttons)
MessageBox.Show(message text, caption, buttons, icon)
MessageBox.Show(message text, caption, buttons, icon, default button)
Trong đó:
- Message text là tham số xác điṇh nôị dung thông báo cần hiển thi ̣ trên hôp̣ thoaị
- caption là tham số xác điṇh dòng tiêu đề của hôp̣ thông báo
- buttons là tham số xác điṇh các nút se ̃hiển thi ̣ trên hôp̣ thông báo , nó có thể nhận
môṭ trong các giá tri ̣ sau:
MessageBoxButtons.AbortRetryIgnore
MessageBoxButtons.OK
MessageBoxButtons.OKCancel
MessageBoxButtons.RetryCancel
MessageBoxButtons.YesNo
MessageBoxButtons.YesNoCancel
- icon là tham số xác điṇh biểu tươṇg se ̃xuất hiêṇ trên hôp̣ thông báo , nó có thể
nhâṇ môṭ trong các giá tri :̣
MessageBoxIcon. Asterisk
MessageBoxIcon.Information
MessageBoxIcon.Error
MessageBoxIcon.Hand
MessageBoxIcon.Stop
MessageBoxIcon.Exclamation
MessageBoxIcon.Warning
MessageBoxIcon.Question
MessageBoxIcon.None
- default button là tham số xác điṇh nút đươc̣ choṇ ngầm điṇh
Giá trị trả về của phương thức show cho biết nút được nhấn , các hằng số tương ứng
với các nút như sau:
Hằng Giá trị Nút được nhấn
DialogResult.OK 1 OK
DialogResult.Cancel 2 Cancel
89
DialogResult.Abort 3 Abort
DialogResult.Retry 4 Retry
DialogResult.Ignore 5 Ignore
DialogResult.Yes 6 Yes
DialogResult.No 7 No
Ví dụ : Tạo một ứng dụng Windows Forms , đăṭ lên form môṭ label có thuôc̣ tính
name = lblResults, thuôc̣ tính Text = Nothing Clicked; môṭ nút lêṇh (Button) có
thuôc̣ tính name = btnShow_Click, thuôc̣ tính Text = Show, sau đó Click đúp chuôṭ
vào nút Show để chèn đoạn mã sau:
Private Sub btnShow_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnShow.Click
If MessageBox.Show(“Your Internet connection will be closed now.”, _
“Dial-Up Networking Notification”, MessageBoxButtons.OKCancel, _
Nothing, MessageBoxDefaultButton.Button1) = DialogResult.OK Then
lblResults.Text = “OK Clicked”
„Call some method here...
Else
lblResults.Text = “Cancel Clicked”
„Call some method here...
End If
End Sub
Chạy chương trình và Click chuôṭ vào nút Show ta se ̃thấy hôp̣ thông báo hiển thi ̣
giống như sau:
Click vào nút OK hoăc̣ nút Cancel để xem kết quả .
4.8. Các hộp thoại thông dụng
Các hộp thoại thông dụng là những hộp thoại được sử dụng thường xuyên trong
môi trường windows, để hiển thị các hộp thoại này chúng ta dùng cùng một phương
thức: ShowDialog
Các hộp thoại này gồm:
90
Hộp thoại Mô tả
ColorDialog Cho chọn tên và hiệu chỉnh giá trị màu sắc
FolderBrowserDialog
Cho phép duyệt thư mục
FontDialog Chọn tên và kiểu font chữ mới
OpenFileDialog Cho lấy về ổ đĩa, tên file, tên folder
PageSetupDialog Điều khiển các thiết lập trang in
PrintDialog Cho thiết lập các tùy chỉnh in ấn
PrintPreviewDialog Hiển thị xem trước khi in
SaveFileDialog Cho đặt tên file, folder mới sắp ghi lên đĩa
4.8.1. Điều khiển hộp thoại Open
Hôp̣ thoaị Open cho phép người sử duṇg choṇ têp̣ tin để mở . Để làm viêc̣ với hôp̣
thoại này, ta sử duṇg điều khiển OpenDialog trên thanh công cu .̣
Môṭ số thuôc̣ tính của điều khiển gồm:
Thuộc tính Giải thích
AddExtension Nhâṇ giá tri ̣ True thì phần mở rôṇg của tâp̣ tin se ̃đươc̣
tư ̣đôṇg thêm vào nếu người sử duṇg không gõ phần mở
rôṇg cho tâp̣ tin, thuôc̣ tính này thường sử duṇg cho hôp̣
thoại Save
CheckFileExists Nhâṇ giá tri ̣ True thì se ̃kiểm tra sư ̣tồn taị của file
CheckPathExists Nhâṇ giá tri ̣ True thì se ̃k iểm tra sư ̣tồn taị của đường
dâñ
DefaultExt Gán phần mở rộng ngầm định
FileName Trả về tên tệp tin được chọn, không chứa đường dẫn
FileNames Trả về tên của tất cả các tệp tin được chọn
Filter Chỉ định kiểu tệp tin mà hộp thoại sẽ hiển thị
FilterIndex Chỉ ra bộ lọc được sử dụng đầu tiên
InitialDirector Thư mục sẽ hiển thị khi hộp thoại xuất hiện
Multiselect Cho phép choṇ nhiều têp̣ tin hay không ,
ShowHelp Nhâṇ giá tri ̣ True se ̃cho hiển thi ̣ nút Help trên hôp̣ thoaị
Title Tiêu đề của hộp thoại
91
Ví dụ: Tạo một project mới có tên là CommonDialog dạng ứng dụng windows ,
đăṭ lên form 4 nút lệnh. Nút thứ nhất có name = btnOpen, text = Open file; nút thứ
hai có name = btnSave, text = Save; nút thứ ba có name = btnFont, text = Font; nút
thứ tư có name = btnColor, text = Color. Môṭ hôp̣ văn bản có name = txtcontext,
multiline = True, text = "". và 4 điều khiển hôp̣ thoaị là: OpenFileDialog1,
SaveFileDialog1, FontDialog1 và ColorDialog1. Click đúp chuôṭ vào nút Open để
đưa đoaṇ ma ̃sau vào sư ̣kiêṇ Click của nút.
Private Sub btnOpen_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles btnopen.Click
With OpenFileDialog1
.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
.FilterIndex = 1
.Title = "Demo Open File Dialog"
End With
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim strfilename As String
If OpenFileDialog1.FileName "" Then
strfilename = OpenFileDialog1.FileName
txtcontext.text = My.Computer.FileSystem.ReadAllText(strfilename)
End If
End If
End Sub
Chạy chương trình và Click chuột vào nút Open file , xuất hiêṇ hôp̣ thoaị
92
chọn file văn bản trungthu.txt, Click vào nút Open ta se ̃thấy kết quả như sau :
4.8.2. Điều khiển hộp thoại Save
Hôp̣ thoaị Save cũng có nhiều thuôc̣ tính giống thuộc tính của hộp thoại Open .
Tuy nhiên ta cần chú ý môṭ số thuôc̣ tính sau :
Thuộc tính Giải thích
AddExtension Nhâṇ giá tri ̣ True thì phần mở rôṇg của tâp̣ tin se ̃đươc̣
tư ̣đôṇg thêm vào nếu người sử duṇg không gõ phần mở
rôṇg cho tâp̣ tin, thuôc̣ tính này thường sử duṇg cho hôp̣
thoại Save
CheckFileExists Nhâṇ giá tri ̣ True thì se ̃kiểm tra sư ̣tồn taị của file
93
CheckPathExists Nhâṇ giá tri ̣ True thì se ̃kiểm tra sư ̣tồn taị của đường
dâñ
CreatePrompt Nhâṇ giá tri ̣ True se ̃hiển thi ̣ môṭ hôp̣ thông báo cho
phép tạo file , nếu người sử duṇg gõ môṭ tên file chưa
tồn taị.
Để hiểu về hôp̣ thoaị Save, trong project CommonDialog, ta Click đúp chuôṭ vào
nút Save và chèn đoaṇ ma ̃sau vào sư ̣kiêṇ Click của nút rồi chaỵ thử chương trình .
Private Sub btnSave_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSave.Click
With SaveFileDialog1
.DefaultExt = "txt"
.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
.FilterIndex = 1
.OverwritePrompt = True
.Title = "Demo Save File Dialog"
End With
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim filePath As String
filePath = SaveFileDialog1.FileName
My.Computer.FileSystem.WriteAllText(filePath, txtcontext.Text, True)
End If
End Sub
4.8.3. Điều khiển hôp̣ thoaị Font
Khi viết các ứng dụng, ta có thể cho phép người sử duṇg lưạ choṇ Font mà ho ̣
muốn dữ liêụ của ho ̣đươc̣ hiển thi ̣ thông qua hôp̣ thoaị Font. Để làm điều này ta sử
dụng điều khiển hộp thoại Font. Điều khiển này bao gồm các thuôc̣ tính sau:
Thuộc tính Giải thích
AllowScriptChange
Color Xác định màu của font được chọn
Font Xác định font được chọn
FontMustExist Hiển thi ̣ thông báo lỗi khi người sử duṇg choṇ font
không tồn taị
MaxSize Xác định cỡ lớn nhất của fo nt mà người sử dụng có thể
chọn
94
MinSize Xác định cỡ nhỏ nhất của font mà người sử dụng có
thể choṇ
ShowApply Nhâṇ giá tri ̣ True se ̃cho hiển thi ̣ nút Apply trên hôp̣
thoại
ShowColor Nhâṇ giá tri ̣ True se ̃cho hiển thi ̣ hôp̣ màu
ShowEffect Nhâṇ giá tri ̣ True se ̃cho hiển thi ̣ nút Apply trên hôp̣
thoại
ShowHelp Nhâṇ giá tri ̣ True se ̃cho hiển thi ̣ nút Help trên hôp̣
thoại
Trong project CommonDialog, Click đúp chuôṭ vào nút Font và chèn đoaṇ ma ̃
sau: Private Sub btfont_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btfont.Click
FontDialog1.ShowColor = True
FontDialog1.ShowApply = True
FontDialog1.ShowEffects = True
FontDialog1.ShowHelp = True
If FontDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
txtcontext.Font = FontDialog1.Font
txtcontext.ForeColor = FontDialog1.Color
End If
End Sub
chạy thử chương trình, Click chuôṭ vào nút Font ta thấy kết quả như sau:
95
Hãy chọn font, size, color, rồi Click lên nút OK để xem kết quả.
4.8.4. Điều khiển hôp̣ thoaị Color
Điều khiển hôp̣ thoaị màu cho phép hiển thi ̣ hôp̣ thoaị Color để người sử duṇg
lưạ choṇ màu sắc cho các đối tươṇg có thuôc̣ tính màu. Điều khiển hôp̣ thoaị này
gồm các thuôc̣ tính sau:
Thuộc tính Giải thích
AllowFullOpen Nhâṇ giá tri ̣ True cho phép hiển thi ̣ hôp̣ thoaị Define
CustomColor để người sử duṇg điṇh nghiã màu tùy
chọn
AnyColor Nhâṇ giá tri ̣ True cho phép hiển thi ̣ bảng màu cơ sở
(basic colors) để người sử dụng lựa chọn màu
Color Trả về màu mà người sử dụng lựa chọn
Để tìm hiểu các thuôc̣ tính của điều khiển hôp̣ thoaị màu , trong project
ComonDialog, Click đúp chuôṭ vào nút Color và chèn vào đoaṇ ma ̃sau :
Private Sub btncolor_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btncolor.Click
ColorDialog1.AllowFullOpen = True
ColorDialog1.AnyColor = True
ColorDialog1.ShowDialog()
96
If ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
txtcontext.BackColor = ColorDialog1.Color
End If
End Sub
Chạy chương trình, Click vào nút Color, lưạ choṇ màu và Click vào nút OK để
xem kết quả
4.9. Điều khiển Splitter
Điểu khiển Splitter taọ môṭ thanh ngăn cách giữa hai phần của môṭ cửa sổ , có thể
điều chỉnh kích thước của mỗi phần bằng cách Click và giữ chuôṭ rồi kéo sang bên
trái hoặc bên phải . Để tìm hiểu điều khiển này , ta taọ môṭ chương trình bằng cách
thưc̣ hiêṇ các bước sau:
1. Tạo một Application mới, đặt một Panel lên phía trái của form chính để nó chíếm
bên trái của form bằng cách thiết lập thuộc tính Dock của nó thành Left. Ta gọi
Panel ấy là Panel1.
2. Đặt một Splitter lên form (nhớ tránh đặt nó lên Panel1 vì Panel cũng là một loại
Điều khiển chứa (container) nên có thể chứa Splitter được). Splitter sẽ tự động dock
Left vào form tức là nằm bên phải Panel1. Chọn thuộc tính BoderStyle của
Splitter1 làm FixedSingle cho dễ thấy.
3. Đặt một button lên Panel1 và thiết lập thuộc tính Anchor của nó thành Top, Left,
Right. Bây giờ form sẽ giống như dưới đây:
97
4. Tiếp theo, đặt một Panel lên bên phải của form, gọi là Panel2, và thiết lập thuộc
tính Dock nó thành Fill. Có nghĩa là ta muốn Panel2 chiếm hết phần còn lại bên
phải của form.
5. Thêm vào trong Panel2 này một Button, gọi là Button2, và thiết lập thuộc tính
Anchor của nó thành Top, Left, Right.
Khi chạy chương trình, mỗi lần bạn nắm Splitter kéo qua phải thì Button1 dãn ra
và Button2 co lại:
Ngược lại, nếu bạn nắm Splitter kéo qua trái thì Button1 co ra và Button2 dãn lại
Trong thí dụ này ta để yên chiều rộng của Splitter, nhưng bình thường ta làm cho nó
hẹp hơn. Nếu Splitter hẹp thì khó thấy, do đó bạn có thể cho nó một màu đỏ rực
trong lúc thiết kế để dễ thấy. Khi thiết kế xong hết rồi, bạn đổi nó lại thành một màu
dịu hơn.
Nếu bây giờ bạn muốn chia Panel2 thành hai phần, ngăn cách bởi một Horizontal
Splitter thì sao? Ta cứ xem Panel2 như một form vậy, tức là cả hai đều là
containers, loại điều khiển có thể chứa nhiều điều khiển, và lập lại các bước sau:
1. Đặt một Panel lên phía trên của Panel2, gọi nó là Panel3 và thiết lập thuộc tính
Dock của nó thành Top.
98
2. Đặt một Splitter lên Panel2 (nhớ tránh đặt nó lên Panel3), gọi nó là Splitter2 và
thiết lập thuộc tính Dock của nó cũng thành Top. Resize Splitter2 cho nó dẹp lại và
đổi thuộc tính Backcolor thành ra điều khiển Dark cho dễ thấy.
3. Đặt một Panel lên phía dưới của Panel2, gọi nó là Panel4 và dời Button2 từ
Panel2 qua Panel4 bằng cách Cut and Paste.
4. Thiết lập thuộc tính Dock của Panel4 thành Fill.
Bây giờ hãy chạy chương trình và nắm kéo Splitter2 lên xuống.
Tóm lại, muốn dùng điều khiển Splitter trong một form hay panel ta đặt một PanelX
với Docking Left hay Top lên trước, kế đó đặt một Splitter với cùng loại Docking
với PanelX, rồi đặt PanelY với Docking Fill.
4.10. Các điều khiển Providers
Trong Windows Forms có một gia đình điều khiển mới mà ta chỉ có thể dùng khi
chúng đi chung với các điều khiển khác trên cùng một form. Chúng được gọi là điều
khiển Provider và có đặc tính là khiến cho các thuộc tính mới hiện ra trong các
điều khiển khác.
Điều khiển Provider không hiển thị trên form lúc chạy chương trình. Do đó chúng
nằm riêng trong khay thiết bị lúc ta thiết kế. Hiện giờ có 3 Điều khiển Provider :
HelpProvider, ToolTip và ErrorProvider. Cả ba đều làm việc một cách tương tự
nhau.
4.10.1. Điều khiển HelpProvider và ToolTip
Trong VB 6.0, các điều khiển có thuộc tính HelpContextID để ta chỉ định
khi người sử dụng bấm nút F1 thì chương trình sẽ hiển thị Help ở đúng trang có trị
số HelpContextID trong Help file. Còn ToolTip là một thuộc tính của mỗi điều
khiển. Ta chỉ cần dùng cửa sổ Properties để cho vào ToolTip text của một điều
khiển là trong lúc chạy chương trình, khi nào ta để con trỏ chuột nằm lên điều khiển
là chương trình sẽ hiển thị ToolTip text. Hai thứ ấy không còn dùng trong Windows
Forms nữa. Thay vào đó, ta phải đặt các điều khiển Provider lên form để thực hiện
các công tác tương đương.
Điều khiển HelpProvider cho phép các điều khiển khác chỉ định nội dung
trợ giúp theo ngữ cảnh hiển thị khi người sử dụng bấm nút F1. Khi một điều khiển
99
HelpProvider (gọi là HelProvider1 by default) được thêm vào một form, thì mọi
điều khiển trên form đều sẽ có thêm các thuộc tính dưới đây:
HelpString on HelpProvider1
Khi điều khiển có focus, người sử dụng bấm nút F1 sẽ bật ra chuỗi trợ giúp
(Tooltip HelpString) cho điều khiển HelpTopic on HelpProvider1
Cung cấp một Topic trong Help file để hiển thị trợ giúp theo ngữ cảnh cho điều
khiển. Điều khiển HelpProvider1 có một thuộc tính do ta chỉ định dùng Help file
nào: ShowHelp on HelpProvider1
Xác định là điều khiển HelpProvider có kích hoạt cho điều khiển này không. Một
khi thuộc tính HelpString đã được cho một chuỗi văn bản thì trong lúc điều khiển
nhận được focus, nếu người sử dụng bấm nút F1 một Tooltip sẽ hiển thị huỗi văn
bản ấy. HelpProvider có một thuộc tính để dẫn đến một Help file, hoặc là
HTMLHelp file, hoặc là Win32Help file, và trị số trong thuộc tính HelpTopic sẽ
chỉ dẫn đến topic ấy trong Help file. Trong lúc chương trình chạy, ta cũng có thể
thiết lập cho thuộc tính HelpString cho Textbox1 như sau:
Điều khiển ToolTip cũng hoạt động tương tự, nhưng đơn giản hơn. Nó chỉ cho
thêm một thuộc tính mới tên ToolTip on ToolTip1 vào mỗi điều khiển, giả dụ tên
của ToopTip provider là ToolTip1. Thuộc tính này làm việc y hệt như ToolTipText
trong VB 6.0. Trong lúc chương trình chạy, ta cũng có thể thiết lập cho thuộc tính
Tooltip của Textbox txtName một trị số Textstring như sau:
ToolTip1.SetToolTip(txtName, "Xin vui lòng đánh tên bạn vào đây")
4.10.2. Điều khiển ErrorProvider
Thông thường sau khi người sử dụng điền xong các dữ kiện vào một form thì sẽ
click một button OK hay Submit chẳng hạn. Để tránh trường hợp cập nhật dữ liệu
của một record với những dữ kiện không hợp lệ, ta thường kiểm tra lại dữ kiện nằm
trong từng Textbox trên form và hiển thị một thông điệp để nhắc nhở và giải thích
cho người sử dụng khi có lỗi (error). Nếu người sử dụng lầm lỗi ở nhiều Textboxes
thì có thể sẽ có nhiều thông điệp hiển thị lần lượt cái này tiếp theo cái kia, mỗi
100
thông điệp liên hệ đến một Textbox có error. Cách ấy cũng tạm được, nhưng có thể
khiến cho người sử dụng bực mình.
Điều khiển ErrorProvider cung cấp một cách đơn giản và thân thiện để cho
người sử dụng biết Textbox nào có dữ kiện bất hợp lệ. Điều khiển ErrorProvider
cho các điều khiển trên cùng form một thuộc tính mới gọi là Error on
ErrorProvider1 ( giả dụ là điều khiển ErrorProvider mang tên ErrorProvider1).
Trong lúc chương trình chạy, nếu kiểm thấy một Textbox có lỗi ta gán một
TextString vào thuộc tính Error on ErrorProvider1 của Textbox ấy. Lúc bấy giờ một
icon đỏ hình dấu chấm than trắng sẽ hiển thị bên phải Textbox có Error. Nếu người
sử dụng để con trỏ chuột lên trên icon ấy thì chương trình sẽ hiển thị một Tooltip
với trị số TextString của thuộc tính Error on ErrorProvider1 giống như trong hình
dưới đây:
Công việc gán một TextString vào thuộc tính Error on ErrorProvider1 của một
Textbox có thể được viết lệnh như sau:
Private Sub BtnOK_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnOK.Click
' Thiết lập error if TextBox txtName is blank
If txtName.Text = "" Then
' Assign error ToolTip message to Textbox txtName
ErrorProvider1.Thiết lậpError(txtName, "You must supply a name!")
End If
End Sub
Trên đây ta dùng Event Click của button BtnOK để kiểm tra dữ kiện trong mọi
Textbox. Có một Event của các điều khiển mà ta cũng có thể dùng trong công tác
kiểm tra dữ kiện của một TextBox. Đó là Event Validating. Để gây ra Event
101
Validating ta cần phải dùng thuộc tính CauseValidation của các điều khiển.
Thông thường, thuộc tính CauseValidation của các điều khiển được thiết lập thành
True. TextBox txtName chỉ tạo ra Event Validating khi chính thuộc tính
CauseValidation của nó là True và khi focus được di chuyển đến một điều khiển
khác có thuộc tính CauseValidation là True.
Xin lưu ý là không nhất thiết Event Validating được tạo ra khi txtName mất focus.
Khi txtName mất focus thì Textbox txtAge được focus (giả dụ txtAge có trị số
TabOrder ngay sau txtName) , nhưng nếu thuộc tính CauseValidation của txtAge
không phải là True thì phải đợi đến khi focus đáp lên một điều khiển có thuộc tính
CauseValidation là True txtName mới gây ra Event Validating.
Ta có thể viết lệnh cho Sub txtName_Validating như sau:
Private Sub txtName_Validating( ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) _
Handles txtName.Validating
' Thiết lập error if TextBox txtName is blank
If txtName.Text = "" Then
' Assign error ToolTip message to Textbox txtName
ErrorProvider1.Thiết lậpError(txtName, "You must supply a name!")
Else
' Clear the error ToolTip message for Textbox txtName and make error Icon
invisible
ErrorProvider1.Thiết lậpError(txtName, "")
End If
End Sub
Cái biểu tươṇg (icon) đỏ hình dấu chấm than trắng là biểu tượng mặc định
(default icon) của ErrorProvider. Muốn dùng một icon khác ta chỉ cần gán biểu
tượng ấy vào thuộc tính Icon của ErrorProvider.
4.11. Menus
Mặc dầu Menu Editor của VB 6.0 cung cấp đầy đủ các phương tiện để làm
Menu và tương đối dễ dùng, Visual Basic.NET cho ta một giao diện càng thân thiện
102
và tự nhiên hơn để thiết kế Menu. Menu được thêm vào form dưới dạng một điều
khiển. Tuy Menu điều khiển nằm trong một mâm components phía dưới, nhưng
trong lúc thiết kế, Menu hiện ra trong form y như lúc Runtime và bạn chỉ cần điền
vào các mục chọn cần thiết. Có hai loại menus: Main Menu (Menu dùng thông
thường) và Context Menu (dùng cho Pop-Up).
- Main Menu là Menu căn bản mà bạn thấy nó dính vào cạnh trên của một form. Để
dễ giải thích, ta sẽ dùng một thí dụ tạo ra một Editor thật đơn giản bằng Visual
Basic.NET. Bạn hãy khởi động một Windows Application mới và thêm một
Textbox vào trong form chính. Thiết lập thuộc tính MultiLine của Textbox thành
True để nó có thể hiển thị nhiều hàng, đồng thời Stretch (kéo dãn ra) cái Textbox
cho lớn ra làm nơi ta có thể đánh vào một bài text. Kế đó, thêm một Main Menu vào
form. Cái menu Designer sẽ
Các file đính kèm theo tài liệu này:
- giao_trinh_lap_trinh_co_so_du_lieu_phan_1.pdf