Giáo trình Lập trình cơ sở dữ liệu (Phần 1)

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.

pdf135 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 416 | Lượt tải: 0download
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:

  • pdfgiao_trinh_lap_trinh_co_so_du_lieu_phan_1.pdf