Hộp thoại Save (hay Save As) về thực chất cũng chính là hộp thoại Open (Cùng sử dụng điều khiển Dialog) nhưng có điểm khác là tiêu đề của hộp thoại này mặc định bây giờ là "Save As" thay vì "Open" để người dùng có "cảm giác" thân thiện hơn. Tiêu đề của hộp thoại luôn luôn có thể thay đổi được bằng cách thay đổi thuộc tính DialogTitle.
Thực hành: Xây dựng chương trình giống như phần 1 nhưng có thêm nút "Save As" để khi người dùng click vào nút này thì nội dung đang soạn thảo sẽ được lưu ra đĩa với một tên file mới.
Ngôn ngữ lập trình Visual Basic
44
Các bước thực hiện: Giống như phần 1
Thiết kế giao diện: Thêm nút Save (Name: cmdSaveAs, Caption: &Save As)
Giao diện và kết quả chạy chương trình
Viết lệnh: frmMain.frm
Option Explicit'/// Mở các file Richtext Format (các file có phần mở rộng là RTF)
Private sub cmdOpenRTFFile_Click()
dlgHopThoai.DialogTitle = "Mo file Text" '/// Đặt lại tiêu đề
dlgHopThoai.Filter = "Cac file Richtext (*.RTF)|*.rtf|" '/// Chỉ hiển thị file dạng RTF
dlgHopThoai.Showopen'/// Mở hộp thoại chọn file
rtfEditor.LoadFile
dlgHopThoai.FileName, rtfRTF '/// Nạp file vào Richtextbox
EndSub'/// Mở các file Text (các file có phần mở rộng là TXT) Private sub cmdOpenTextFile_Click()
dlgHopThoai.DialogTitle = "Mo file Text" dlgHopThoai.Filter = "Cac file text (*.txt)|*.txt|" dlgHopThoai.Showopen
rtfEditor.LoadFile
dlgHopThoai.FileName, rtfText
EndSub'/// Thực hiện mở hộp thoại để cho người dùng gõ một tên file mới'/// và
lưu nội dung đang soạn thảo ra file này
Private sub cmdSaveAs_Click()
dlgHopThoai.Filter = "Tất cả các file (*.*)|*.*|"
dlgHopThoai.FileName = ""dlgHopThoai.Showsave'/// Mở hộp thoại "Save As"
If dlgHopThoai.FileName <> "" Then
rtfEditor.SaveFile
dlgHopThoai.FileName, rtfRTF'/// rtfRTF Hoặc rtfText nếu muốn lưu sang dạng file Text (TXT)
End If End Sub
Ngôn ngữ lập trình Visual Basic
45
• Chú ý:
• Giống như hộp thoại Open, hộp thoại "Save As" cũng "Không tự động lưu nội dung soạn thảo ra đĩa" mà ta phải tự làm (lệnh rtfEditor.SaveFile
dlgHopThoai.FileName, rtfRTF) Nó chỉ cho ta biết là người dùng đã gõ
vào tên file gì mà thôi (thông qua thuộc tính FileName)
• Nếu muốn lưu nội dung vào chính file đó (chứ không phải ra file mới) thì không cần phải hiển thị hộp thoại Save As mà chỉ cần viết câu lệnh rtfEditor.SaveFile dlgHopThoai.FileName.