Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 109 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
109
Dung lượng
5,26 MB
Nội dung
Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU MỤC LỤC Chương 1: TỔNG QUAN VỀ VISUAL BASIC NET 1.1 Cài đặt Visual Studio NET 1.2 .NET Framework 1.3 Bắt đầu dự án 1.4 Viết chương trình Visual Basic đầu tay 12 1.5 Chạy chương trình ứng dụng Visual Basic NET 13 Chương 2: BIỂU MẪU VÀ MỘT SỐ ĐIỀU KHIỂN THÔNG DỤNG 15 2.1 Các khái niệm 15 2.2 Biểu mẫu (Form) 17 2.3 Nhãn (Label) 19 2.4 Nút lệnh (Command Button) 20 2.5 Ô nhập liệu (Textbox) 22 2.6 Các thuộc tính, phương thức Control 24 2.7 Bảng điều khiển (Control Panel) 24 2.8 Khung (GroupBox) 25 Chương 3: LẬP TRÌNH CẤU TRÚC TRONG VISUAL BASIC 27 3.1 Môi trường lập trình 27 3.2 Kiểu liệu 30 3.3 Hằng số 31 3.4 Biến 31 3.5 Biểu thức 32 3.6 Các hàm xây dựng sẵn 33 3.7 Câu lệnh 34 3.8 Chương trình truyền tham số 46 3.9 Kiểu Mảng 50 3.10 Kiểu người dùng định nghĩa - Kiểu mẩu tin 53 Chương 4: MẢNG CONTROL TRONG VISUAL BASIC 54 4.1 Tạo thêm Control vào đối tượng 54 4.2 Tạo thêm mảng Control mói vào đổi tượng Container 56 4.3 Truy xuất đến phần tử bên đổi tượng Container 60 4.4 Xóa phần tử bên đổi tượng Container 60 Chương 5: CÁC CONTROL MỞ RỘNG 61 5.1 Danh sách lựa chọn (List Box) 61 5.2 Hộp lựa chọn (Combo Box) 64 5.3 Hộp đánh dấu (Check Box) 66 5.4 Nút lựa chọn (RadioButton) 67 Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU 5.5 Thanh cuộn (ScrollBar) 68 5.6 Thời gian (Timer) 70 5.7 DataGridView 72 5.8 DatetimePicker 73 5.9 SplitContainer 74 5.10 ListView 75 5.11 TreeView 76 5.12 RichTextbox 77 5.13 NotifyIcon 78 5.14 Điều khiển danh sách ổ đĩa (DriveListbox), danh sách thư mục (DirListbox), danh sách tập tin (FileListbox) 78 Chương 6: MENU – DIALOG – TOOLBAR 81 6.1 Menu – MenuStrip (Dropdown Menu) 81 6.2 Menu – ContextMenuStrip (PopUp Menu) 82 6.3 Hộp thoại 83 Chương 7: QUẢN LÝ TẬP TIN VÀ THƯ MỤC 90 7.1 Làm việc với thư mục 90 7.2 Làm việc với tập tin 92 Chương 8: USER CONTROL – DLL VÀ ĐÓNG GÓI ỨNG DỤNG 102 8.1 User Control 102 8.2 DLL 104 8.3 Đóng gói chương trình 105 Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Chương 1: Khoa Công nghệ Thông tin - LHU TỔNG QUAN VỀ VISUAL BASIC NET Mục tiêu: Giới thiệu môi trường phát triển Visua Basic NET, giúp cho sinh viên có nhìn tổng quan VB NET Kết thúc chương nắm bắt vấn đề sau: Sử dụng môi trường VB NET để phát triển số ứng dụng Cách tạo dự án VB NET 1.1 Cài đặt Visual Studio Net Cấu hình tối thiểu: CPU Pentium III, 500MHz trở lên, với 256 MB RAM 10GB Harddisk Hệ điều hành: Window 2000, XP, Vista, Lý versions Windows hỗ trợ Unicode có Internet Information Server (IIS) hổ trợ ASPX để ta dùng cho ASP.NET Visual Studio.NET nằm CDs, gồm có files: • EN_VS_NET_BETA2_WINCUP.exe • EN_VS_NET_BETA2_CD1.exe • EN_VS_NET_BETA2_CD2.exe • EN_VS_NET_BETA2_CD3.exe Chạy EN_VS_NET_BETA2_WINCUP.exe để Unzip vào folder harddisk (eg: E:\CD\WINCUP) Lần lượt chạy EN_VS_NET_BETA2_CD1.exe, EN_VS_NET_BETA2_CD2.exe EN_VS_NET_BETA2_CD3.exe để Unzip chúng vào chung folder harddisk (eg: E:\CD ) Việc Unzip files lâu, bạn phải kiên nhẫn chờ kết thúc Nếu khơng, cài đặt bị báo lỗi thiếu files Kế đó, trước hết chạy Setup.exe Windows Component Update đây, click No Warning dialog ra: Tiếp theo, chạy Setup.exe Visual Studio.NET để cài đặt Đây Visual Studio Net 2003 Cài đặt Visua Studio Net 2005 Phiên có đĩa CD Ta chạy file đĩa để giải nén vào thư mục ổ đĩa cứng Sau giải nén xong có hai Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU thư mục chính: thư mục VS (chứa file cài đặt Visual Studio Net 1.17GB) thư mục MSDN (chứa thư viện hỗ trợ cho việc sử dụng Visual Studio Net 1.55GB) Để cài đặt ta vào thư mục VS chạy file Setup.exe để cài đặt, trình cài chiếm khoảng thời gian tùy vào cấu hình máy (trung bình từ 15 – 20 phút) Sau số bước lựa chọn bắt buộc đến giao diện phần mềm cho phép người dùng lựa chọn gói cài đặt Những lựa chọn giao diện ảnh hưởng đến kích Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU thước lưu trữ đĩa cứng công cụ hổ trợ liên quan Thời gian cài đặt nhanh hay chậm phụ thuộc vào gói chọn cài đặt Kết thúc trình cài đặt ta cài đặt thêm thư viện MSDN hổ trợ người lập trình viên trình xây dựng dự án Câu hỏi: Nêu khác gói cài đặt Default, Full Custom? Bộ thư viện MSDN hỗ trợ người lập trình gì? Có thật cần thiết phải cài đặt tất công cụ MS Visual Studio? 1.2 .NET Framework NET developed từ đầu năm 1998, lúc đầu có tên Next Generation Windows Services (NGWS) Nó thiết kế hồn tồn từ số khơng để dùng cho Internet .NET đại diện cho tồn công nghệ khái niệm cấu thành tảng để người lập trình xây dựng ứng dụng Có thể hiểu NET lớp tồn bên ứng dụng cung cấp tập chức dịch vụ .NET framework cung cấp thành phần chính: lớp sở (NET Framework base class) sử dụng ngôn ngữ chung (Common Language Runtime) .NET framework cung cấp tập hàm API riêng để giúp cho lập trình tận dụng hết khả Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Net Framework môi trường phát triển phần mềm giúp lập trình viên xây dựng ứng dụng nhanh hiệu nhiều ngơn ngữ lập trình: VB.Net, C#, ASP.Net, Jscript.Net … Khi sử dụng Net Framework, không cịn phải q quan tâm đến việc lựa chọn ngơn ngữ để phát triển ứng dụng Thậm chí ứng dụng ta viết nhiều ngơn ngữ NET khác Giới hạn VB 6.0 Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Các thành phần Net FrameWork Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU NET application chia làm hai loại: cho Internet gọi ASP.NET, gồm có Web Forms Web Services cho desktop gọi Windows Forms Windows Forms giống Forms VB6 Nó hổ trợ Unicode hồn tồn, tiện cho chữ Việt thật Object Oriented Web Forms có Server Controls làm việc giống Controls Windows Forms, dùng codes để xử lý Events y hệt Windows Forms Điểm khác biệt chánh ASP (Active Server Pages) ASP.NET ASP.NET, phần đại diện visual components code nằm riêng nhau, không lộn xộn ASP Ngoài ASP.NET code hoàn toàn Object Oriented Web Services giống Functions mà ta gọi dùng từ URL Internet, thí dụ Credit Card authorisation ADO.NET loại cache database nho nhỏ (gọi disconnected database) để thay ADO Thay application connects vĩnh viễn với database mẹ qua ADO, application NET làm việc với portable database chứa hai tables, copy từ database mẹ Khi cần, portable database nầy (ADO.NET) reconciled với database mẹ để update thay đổi Hai tables ADO.NET related Master/Details relationship Vì ADO.NET có chứa original data lẫn data nên Rollback ADO.NET dễ dàng nhẹ ký XML yểm trợ tối đa Nằm phía sau ADO.NET XML XML Table of records ADO.NET hay Tree of nodes DOM (Document Object Model) IO hổ trợ toàn Stream kể Memory Stream StreamReader/StreamWriter Thêm vào DataFormatting cho Serialisation để chứa Object xuống binary file hay text file TCP/IP http hai protocols thông dụng NET, chúng làm việc phía sau sân khấu giúp ta gọi remote procedure (nằm computer khác) dễ dàng local procedure Kỹ thuật gọi Remoting Security hổ trợ Cryptography, Permissions Policy Diagnostics cho ta Debug Trace Threading tiện đơn giản để implement Lightweight Process Vấn đề Timing NET program linh động, hiệu xác Việc thiết kế Common Language Runtime nhắm vào mục tiêu sau đây: • Việc triển khai đơn giản nhanh hơn: developers dành định ráp software components lại với nhiều lập trình thật • Các công tác thiết yếu ("plumbing") memory management, process communication lo liệu tự động • Các công cụ hổ trợ đầy đủ (no more API): NET Framework Base classes phong phú cho file, network, serialisation, mã hóa, XML, database, v.v • Cài đặt đơn giản an toàn (no more DLL "hell"): cần xcopy files, giống thời vàng son DOS Lý NET application chạy NET framework, ta cài NET framework vào máy có đầy đủ DLL cần thiết Có lẽ tương lai Microsoft cài NET framework chung với Windows Câu hỏi: Các hàm API gì? Phân biệt WinForm WebForm .NET Framework có loại? Trình biên dịch làm nhiệm vụ gì? Một dự án viết ngơn ngữ VB.NET tích hợp vào ngơn ngữ lập trình khác hay khơng? Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET 1.3 Khoa Công nghệ Thông tin - LHU Bắt đầu dự án mới: Vào Start => Programs => Microsoft Visual Studio 2005 => Microsoft Visual Studio 2005 (như hình trên) Visual Studio khởi động, lần khởi động chương trình hỏi bạn sử dụng ngơn ngữ (ở chọn Visual Basic) Nếu lần thứ trở xuất giao diện hình Vào File = > New Project Xuất hộp thoại sau: chọn loại ứng dụng viết đặt tên cho dự án Chọn Visual Basic => Windows => chọn Windows Application cửa sổ bên phải => đặt tên cho Project (tên mặc định WindowsApplication1) => OK Biên soạn: ThS Nguyễn Vũ Duy Quang Trang Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Cửa sổ Solution chứa file chươn trình trình Cửa sổ Propertive đối tượng Các component Toolbox Form Designer dùng để thiết kế chương trình Hộp công cụ (toolbox): chứa biểu tượng tương ứng với đối tượng điều khiển chuẩn bao gồm nhãn (label), hộp văn (Textbox), nút lệnh (button)… Để bật tắt hộp công cụ ta vào Menu View => Toolbox (Ctrl + Alt + X) Thực đơn (Menu Bar): cho phép truy cập đến hầu hết lệnh dùng điều khiển môi trường phát triển Menu lệnh menu làm việc tương ứng hầu hết chương trình Windows thơng thường khác Thiết kế chương trình (Form Designer): Đây đối tượng xây hình giao tiếp ứng dụng Khi vừa tạo mới, hình giao tiếp có tên mặc định Form1.vb không chứa đối tượng điểu khiển cả, nhiệm vụ người lập trình thiết kế đối tượng điều khiển hình giao tiếp sử dụng dịng lệnh để xử lý kiện thích hợp cho đối tượng điều khiển Solution Explorer: Quản lý ứng dụng hiển thị hình giao tiếp (Forms), Reports Module … có ứng dụng Ngồi ra, cịn cho phép người lập trình thực nhanh thao tác thêm, xóa đối tượng khỏi ứng dụng Cửa sổ thuộc tính (Propertives): Cho phép định thuộc tính ban đầu cho đối tượng bao gồm hình giao tiếp (Forms) điều khiển (Control) Cửa sổ lệnh (Code window): Đây cửa sổ cho phép khai báo dịng lệnh xử lý biến cố cho hình giao tiếp đối tượng hình giao tiếp Mặc nhiên cửa sổ không hiển thị, người lập trình nhân nút chuột phải lên hình giao tiếp chọn View Code để hiển thị cần Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 10 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU MoveTo(path): Di chuyển tập tin đến đường dẫn Replace(path, bk_path): Thay tập tin cho tập tin đường dẫn path, tập tin backup bk_path 7.2.2 FileSystem Khái niệm Là class chia sẻ (shared) nên sử dụng trực tiếp phương thức lớp MY.COMPUTER.FILESYSTEM cung cấp mà không cần phải khai báo đối tượng trước sử dụng Chứa phương thức hỗ trợ xử lý ổ đĩa, thư mục, tập tin đường dẫn Ổ đĩa My.Computer.FileSystem.Drives: Là danh sách ổ đĩa tồn máy tính Với phần tử đối tượng thuộc lớp DriveInfo Để duyệt qua ổ đĩa ta dùng vòng lặp sau For Each dr As DriverInfo In My.Computer.FileSystem.Drives 'Đây thông tin đối tượng thuộc lớp DriveInFo: dr.VolumnLabel() dr.DriveFormat() dr.TotalSize() dr.TotalFreeSpace() Next Thư mục My.Computer.FileSystem.CopyDirectory () My.Computer.FileSystem.CreateDirectory () My.Computer.FileSystem.CurrentDirectory() My.Computer.FileSystem.DeleteDirectory() My.Computer.FileSystem.DirectoryExists() My.Computer.FileSystem.GetDirectories() My.Computer.FileSystem.GetDirectoryInfo() My.Computer.FileSystem.MoveDirectory() My.Computer.FileSystem.RenameDirectory() My.Computer.FileSystem.SpecialDirectories() Tập tin My.Computer.FileSystem.CopyFile() My.Computer.FileSystem.DeleteFile() My.Computer.FileSystem.FileExists() My.Computcr.FilcSystcm.FindlnFiles() My.Computer.FileSystem.GetFilelnfo() My.Computer.FileSystem.GetFiles() My.Computer.FileSystem.GetName() My.Computer.FileSystem.GetTempFileN ame() My.Computer.FileSystem.GetType() My.Computer.FileSystem.MoveFile() Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 95 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU My.Computer.FileSystem.OpenTextFileReader() My.Computer.FileSystem.OpenTextFileWriter() My.Computer.FileSystem.ReadAllBytes() My.Computer.FileSystem.ReadAllText() My.Computer.FileSystem RenameFile() My.Computer.FileSystem.WriteAllBytes() My.Computer.FileSystem.WriteA11Text() Đường dẫn My.Computer.FileSystem.CombinePath() My.Computer.FileSystem.GetParentPath() Bài tập: Viết chương trình NotePad Windows Imports System.IO Public Class frmNotepad Dim fileName As String = "" Private Sub frmNotepad_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If MsgBox("Are you sure to quit?", MsgBoxStyle.YesNo, "Exit Notepad.") = MsgBoxResult.No Then e.Cancel = True End If End Sub Private Sub frmNotepad_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtNoiDung.Size = New Size(Me.ClientRectangle.Width - 4, Me.ClientRectangle.Height - 28) txtNoiDung.Location = New Point(2, 26) End Sub Private Sub frmNotepad_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize txtNoiDung.Size = New Size(Me.ClientRectangle.Width - 4, Me.ClientRectangle.Height - 28) txtNoiDung.Location = New Point(2, 26) Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 96 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU End Sub Private Sub mnuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExit.Click Me.Close() End Sub Private Sub mnuFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFont.Click If FontDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then txtNoiDung.Font = FontDialog1.Font End If End Sub Private Sub mnuForeColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuForeColor.Click If ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then txtNoiDung.ForeColor = ColorDialog1.Color End If End Sub Private Sub mnuBackColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBackColor.Click If ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then txtNoiDung.BackColor = ColorDialog1.Color End If End Sub Private Sub mnuWordWrap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuWordWrap.Click txtNoiDung.WordWrap = mnuWordWrap.Checked If txtNoiDung.WordWrap = True Then ' An cuon ngang txtNoiDung.ScrollBars = ScrollBars.Vertical Else ' Hien ca hai cuoc doc va ngang txtNoiDung.ScrollBars = ScrollBars.Both End If End Sub Private Sub mnuNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNew.Click txtNoiDung.Text = "" fileName = "" Me.Text = "Untitled" End Sub Private Sub mnuSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSave.Click If fileName = "" Then SaveFileDialog1.Filter = "*.txt|*.txt| All File| *.*" If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then fileName = SaveFileDialog1.FileName 'Luu noi dung Dim fStream As FileStream Dim strWriter As StreamWriter Try fStream = File.Create(fileName) fStream.Close() strWriter = File.AppendText(fileName) strWriter.Write(txtNoiDung.Text) strWriter.Close() Catch ex As Exception Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 97 Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU MsgBox("Lỗi ghi liệu." & vbCrLf & ex.Message, MsgBoxStyle.Exclamation) End Try Me.Text = fileName End If Else 'Luu noi dung Dim fStream As FileStream Dim strWriter As StreamWriter Try fStream = File.Create(fileName) fStream.Close() strWriter = File.AppendText(fileName) strWriter.Write(txtNoiDung.Text) strWriter.Close() Catch ex As Exception MsgBox("Lỗi ghi liệu." & vbCrLf & ex.Message, MsgBoxStyle.Exclamation) End Try Me.Text = fileName End If End Sub Private Sub MnuOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuOpen.Click OpenFileDialog1.Filter = "*.txt|*.txt| All File| *.*" If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then fileName = OpenFileDialog1.FileName Me.Text = fileName 'Lay noi dung Dim strReader As StreamReader strReader = File.OpenText(fileName) txtNoiDung.Text = strReader.ReadToEnd strReader.Close() End If End Sub Private Sub mnuUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuUndo.Click txtNoiDung.Undo() End Sub Private Sub mnuSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSaveAs.Click SaveFileDialog1.Filter = "*.txt|*.txt| All File| *.*" If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then fileName = SaveFileDialog1.FileName 'Luu noi dung Dim fStream As FileStream Dim strWriter As StreamWriter Try fStream = File.Create(fileName) fStream.Close() strWriter = File.AppendText(fileName) strWriter.Write(txtNoiDung.Text) strWriter.Close() Catch ex As Exception MsgBox("Lỗi ghi liệu." & vbCrLf & ex.Message, MsgBoxStyle.Exclamation) End Try Me.Text = fileName End If End Sub Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 98 Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU Private Sub mnuCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCut.Click txtNoiDung.Cut() End Sub Private Sub mnuCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCopy.Click txtNoiDung.Copy() End Sub Private Sub mnuPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPaste.Click txtNoiDung.Paste() End Sub Private Sub mnuDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDelete.Click txtNoiDung.Clear() End Sub Private Sub mnuSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSelectAll.Click txtNoiDung.SelectAll() End Sub Private Sub mnuTimeDate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTimeDate.Click txtNoiDung.Text = txtNoiDung.Text & Format(Now(), "dd/MM/yyyy hh:mm:ss") End Sub Private Sub mniAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mniAbout.Click frmAbout.ShowDialog() End Sub End Class Viết chương trình copy thư mục có thư mục tập tin Imports System.io Public Class frmMain Dim inorge As Boolean = False Private Sub bttnSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttnSource.Click If FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then txtSource.Text = FolderBrowserDialog1.SelectedPath End If Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 99 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU End Sub Private Sub bttnDes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttnDes.Click If FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then txtDes.Text = FolderBrowserDialog1.SelectedPath End If End Sub Sub CopyDir(ByVal pathSource As String, ByVal pathDestination As String) Dim itemDir, itemFile Dim newDirectory As String For Each itemFile In Directory.GetFiles(pathSource) Dim arrFile As String() = Split(itemFile, "\") If File.Exists(pathDestination & "\" & arrFile(arrFile.Length 1)) Then If MsgBox("Đã tồn file: " & arrFile(arrFile.Length - 1) & "Trong thư mục " & pathDestination & vbCrLf & "Bạn có muốn chép đè lên file cũ không?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Exist File") = MsgBoxResult.Ok Then File.Copy(itemFile, pathDestination & "\" & arrFile(arrFile.Length - 1)) End If Else File.Copy(itemFile, pathDestination & "\" & arrFile(arrFile.Length - 1)) End If Next For Each itemDir In Directory.GetDirectories(pathSource) Dim arrDir As String() = Split(itemDir, "\") newDirectory = arrDir(arrDir.Length - 1) If Directory.Exists(pathDestination & "\" & newDirectory) Then If MsgBox("Đã tồn thư mục: " & newDirectory & "Trong đường dẫn " & pathDestination & vbCrLf & "Bạn có muốn chép đè lên thư mục cũ không?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Exist File") = MsgBoxResult.Ok Then Directory.CreateDirectory(pathDestination & "\" & newDirectory) CopyDir(itemDir, pathDestination & "\" & newDirectory) End If Else Directory.CreateDirectory(pathDestination & "\" & newDirectory) CopyDir(itemDir, pathDestination & "\" & newDirectory) End If Next End Sub Private Sub bttnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttnCopy.Click If Directory.Exists(txtSource.Text) Then If Directory.Exists(txtDes.Text) Then Me.Cursor = Cursors.WaitCursor Me.Text = "Xin đợi Đang tiến hành Copy " grpCopy.Visible = True Try Application.DoEvents() CopyDir(txtSource.Text, txtDes.Text) Me.Text = "Chương Trình Copy (Đã Copy Xong)" Catch ex As Exception Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 100 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU MsgBox("Lỗi khơng thể xóa File Hãy đóng ứng dụng mở file." & vbCrLf & ex.Message, MsgBoxStyle.Critical, "Lỗi Copy") Me.Text = "Chương Trình Copy (Lỗi Copy)" End Try Timer1.Start() Me.Cursor = Cursors.Default grpCopy.Visible = False Else MsgBox("Chọn đích cần copy đến.") End If Else MsgBox("Chọn nguồn cần copy") End If End Sub End Class Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 101 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Chương 8: USER CONTROL – DLL VÀ ĐÓNG GĨI ỨNG DỤNG Mục đích Trình bày chi tiết đối tượng User Control DLL Nêu rõ khả ứng dụng đối tượng User Control DLL ữong dự án phần mềm Xây dựng số ví dụ minh họa phương thức hoạt động đối tượng đối tượng User Control DLL cụ thể Mô tả chi tiết cách thức đóng gói dự án VB.NET Kết thúc chương cần nắm vấn đề sau: Biết cách tạo User Control DLL theo mục đích sử dụng khác Nắm bắt thao tác xử lý kiện User Control Hiểu rõ phương thức hoạt động User Control DLL tham gia vào dự án phần mềm VB.NET Biết đóng gói dự án VB.NET 8.1 User Control Tạo User Control Có cách: Tạo trực tiếp User Control Project: Chọn Project/Add User Control , đặt tên Ô Name nhấn OK muốn tạo user control sử dụng project Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 102 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Tạo User control để sử dụng cho nhiều ứng dụng, chọn File/New Project/Windows Control Library Trên giao diện thiết kế user control ta thực số bước sau: Kéo thả điều khiển Toolbox vào điều khiển user control vừa tạo Định vị thiết kế điều khiển, điều khiển muốn người dùng phép truy cập, bạn khai báo Public Cài đặt thủ tục thuộc tính tùy biến điều khiển Ví dụ Tạo control textbox có khả thay đổỉ màu nhận Focus Focus Bước 1: Tạo project chọn kiểu ứng dụng Windows Form Application Bước 2: Chọn Project/Add User Control… đặt tên ô Name TextboxX nhấn OK Bước 3: Trên Solution Explorer, nhấn nút ShowAllFiles để hiển thị tập tin chọn xóa tập tin TextboxX.Designer.vb thay đổi nội dung tập tin TextboxX.vb sau: Public Class TextBoxX Inherits System.Windows.Forms.TextBox End Class Ở ta muốn tạo User control có tất thành phần TextBox nên kế thừa từ TextBox Bước 4: Phát sinh thêm thuộc tính mới: EColor, LColor sau : Private EColor As Color = ForeColor Private LColor As Color = BackColor Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 103 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Public Property GetSetEColor() As Color Get Return EColor End Get Set(ByVal value As Color) EColor = value End Set End Property Bước 5: Xử lý đổi màu điều khiển trỏ Focus qua kiện Enter Leave TextBoxX : Protected Overrides Sub OnEnter(ByVal e As System.EventArgs) MyBase.OnEnter(e) BackColor = EColor End Sub Protected Overrides Sub OnLeave(ByVal e As System.EventArgs) MyBase.OnLeave(e) BackColor = LColor End Sub Bước 6: Open form lên Vào Menu Build => Build Solution để build lại toàn Project Bước 7: Open Toolbox lên ta thấy control xuất Kéo thả user control tạo vào form Bước 8: Chạy chương trình để xem kết 8.2 DLL Tạo DLL Tạo Project với template Class Library Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 104 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU Ghi chú: Có thể viết lớp Notepad lưu với đuôi mở rộng vb Tiến hành xây dựng lớp MsgboxX tạo: Public Class MsbBoxX Sub ShowMessage(ByVal promt As String, ByVal tilte As String, ByVal color As Drawing.color) Dim dlg As New lblThongBao dlg.Text = tilte dlg.lbl_thongbao.Text = promt dlg.BackColor = color dlg.ShowDialog() End Sub End Class Biên dịch thành DLL Vào menu Build chọn Build MsgboxX Bây tã có dll đem sử dụng project khác Thêm DLL vào project Vào menu Project -> add references vào cửa sổ solution nằm bên phải hình làm việc project click phải vào tên project chọn add references Sử dụng DLL Sau thêm dll vào reference thĩ sử dụng dll đơn giản sau: Imports MsgBoxX Public Class Forml Private Sub Buttonl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonl.Click Dim thongbao As New MsgBoxX thongbao.ShowMessage("Khoa Công nghệ Thông tin", "Đại học Lạc Hồng", color.Red) End Sub End Class 8.3 Đóng gói chương trình Sau hồn tất trình viết chương trình Bây muốn mang sản phẩm giới thiệu cần phải đóng gói chương trình thành file cài đặt Ta copy file exe để chạy Tuy nhiên nên cài đặt ứng dụng sau đóng gói cơng cụ Visual Studio Q trình đóng gói thực qua bước sau: Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 105 Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU Tạo dự án Deployment Tại chương trình muốn đóng gói Vào menu File chọn Add chọn New Project … Hộp thoại Add New Project xuất Tại khung Project types chọn Other Project Types => Setup and Deployment Tại khung templates chọn Setup Project Đặt tên cho dự án cài đặt Chọn thư mục lưu (nên để mặc định, lúc dự án lưu thư mục với dự án cần đóng gói) => nhấn OK Một dự án xuất bên dự án cần đóng gói hình Click chuột phải vào dự án tạo chọn Add => Project Output để chọn dự án cần đóng gói Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 106 Giáo trình Visual Basic NET Khoa Công nghệ Thông tin - LHU Hộp thoại Add Project Output Group xuất Chọn tên dự án muốn đóng gói combo box Project (Lúc có tên Notepad) Chọn Primary output Chọn OK Dự án có tên Notepad (Active) đưa vào để đóng gói Click phải chuột lên Dự án tạo chọn Propertives để chỉnh sửa lại kiểu đóng gói vị trí lưu file đóng gói (nên để mặc định) Và chọn thêm gói cần đóng gói kèm theo ứng dụng Hộp thoại Propertives xuất Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 107 Giáo trình Visual Basic NET Khoa Cơng nghệ Thông tin - LHU Để mặc định thông số (Sau Build file đóng gói có tên ChuongTrinhVanBan.msi thư mục Debug) Chọn Prerequisites… để thêm gói kèm theo đóng gói Chọn gói cần kèm theo đóng gói ứng dụng Net Framework mơi trường cần thiết để ứng dụng bạn chạy, ứng dụng có sử dụng báo biểu Crystal Report Visual Studio NET cần phải chọn check thêm vào Crystal Reports … => nhấn OK Sau hoàn tất Click phải chuột vào dự án chọn Build, đợi giây tùy dung lượng chương trình bạn viết để chương trình đóng gói Sau đóng gói thành cơng thư mục Debug có hai tập tin cài đặt msi setup.exe thư mục dotnetfx dùng để cài Net Framework ngồi bạn có chọn Crystal Reports thi có thêm thư mục CrystalReports dùng để cài CrystalReport Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 108 Giáo trình Visual Basic NET Khoa Cơng nghệ Thơng tin - LHU TÀI LIỆU THAM KHẢO [1] Nguyễn Nam Thuận, Tự học Visual Basic NET 10 ngày NXB Giao thơng vận tải, 2007 [2] Phương Lan, Lập trình Visual Basic NXB Phương Đông, 2007 [3] Nguyễn Gia Tuấn Anh (chủ biên), Nguyễn Trung Kiên, Nguyễn Đinh Hoàng, Khai phá Visual Basic.NET 2006 [4] Nguyễn Thiên Bằng (chủ biên), Phương Lan, Học lập trình WINDOWS FORMS qua ví dụ NXB Lao động xã hội, 2007 [5] Phương Lan (chủ biên), Trần Tiến Dũng, Visual Basic - Tập 1: Ngôn ngữ ứng dụng NXB Phương Đông, 2006 [6] Phương Lan (chủ biên), Trần Tiến Dũng, Visual Basic - Tập 2: Lập trình giao diện WINDOWS FORMS ứng dụng Quản lý hệ thống NXB Phương Đông, 2006 Biên soạn: ThS Nguyễn Vũ Duy Quang Trang 109 ... String): Nối thêm chuỗi s vào Textbox Ví dụ: txtNoiDung.Text = “Tơi tên” Khi txtNoiDung.AppendText(“ Duy Quang, bạn tên gì?”) Kết txtNoiDung chứa nội dung “Tơi tên Duy Quang, bạn tên gì?” Clear():... thể hiểu NET lớp tồn bên ứng dụng cung cấp tập chức dịch vụ .NET framework cung cấp thành phần chính: lớp sở (NET Framework base class) sử dụng ngôn ngữ chung (Common Language Runtime) .NET framework... trình: VB. Net, C#, ASP .Net, Jscript .Net … Khi sử dụng Net Framework, khơng cịn phải q quan tâm đến việc lựa chọn ngôn ngữ để phát triển ứng dụng Thậm chí ứng dụng ta viết nhiều ngôn ngữ NET khác