Hộp thoại Open (Open dialog) là một hộp thoại chuẩn cho phép người dùng chọn một file hay một thư mục.
Thực hành: Viết chương trình mở một file (Text hoặc rtf) và hiển thị trong điều khiển Richtext Box.
Các bước thực hiện:
Bước 1: Tạo một Project mới
Bước 2: Vào menu Project → Components và tham chiếu đến 2 file OCX là Rich Textbox và Common Dialog như hình 1
Bước 3: Kéo điều khiển Dialog và Richtext vàoForm
Các điều khiển dùng trong chương trình
Giao diện và kết quả khi chạy chương trình
Đặt giá trị cho các thuộc tính:
Điều khiển Thuộc tính / Giá trị
Form Name : frmMainCaption: Sử dụng hộp thoại OpenStartupPosition: 2- CenterScreen Rich Textbox
Control Name : rtfEditorAutoVerbMenu: TrueScrollBars : 3 - Borth CommonDialog Name: dlgHopThoai (Hộp thoại)
Command
button Name : cmdOpenTextFileCaption: Mở file &Text Command
Button Name : cmdOpenRTFFileCaption: Mở file &RTF 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 subcmdOpenRTFFile_Click()dlgHopThoai.DialogTitle = "Mo file Text" '/// Tiêu đề của hộp thoạidlgHopThoai.Filter = "Cac file Richtext
(*.RTF)|*.rtf|"'/// Chỉ hiển thị các file RTFdlgHopThoai.Showopen'/// Hiển thị hộp thoạirtfEditor.LoadFiledlgHopThoai.FileName, rtfRTF'/// Mở file vừa chọn trong RTFEndSub'/// Mở các file Text (các file có phần mở rộng là TXT)Private subcmdOpenTextFile_Click()dlgHopThoai.DialogTitle = "Mo file
(*.txt)|*.txt|"dlgHopThoai.ShowopenrtfEditor.LoadFiledlgHopThoai.FileName,
rtfTextEndSub Ghi chú:
• Phương thứcLoadFilecủa điều khiển Richtext dùng để mở một file. Nó đòi hỏi 2 tham số, tham số thứ nhất là đường dẫn đến file cần mở, tham số thứ hai là loại file cần mở (Tham số này là tuỳ chọn và có thể bỏ qua).
• Thuộc tính 2- CenterScreen dùng để đặtFormvào giữa màn hình khi hiển thị. • Thuộc tính AutoVerbMenu = True của điều khiển Richtext để cho phép hiển thị
menu (Copy, cut, Paste, Undo) khi người dùng click chuột phải lên Richtext control.
• Trong trường hợp, khi hộp thoại mở ra, nếu người dùng không chọn file nào (Chọn nút Cancel) thì thuộc tính FileName sẽ có giá trị ở lần mở trước đó hoặc sẽ có giá trị rỗng, và như vậy có thể gây lỗi nạp file. Để giải quyết trường hợp này, có thể viết lại đoạn chương trình trên như sau:
Private subcmdOpenRTFFile_Click()
dlgHopThoai.DialogTitle = "Mo file Text" dlgHopThoai.Filter = "Cac file Richtext
(*.RTF)|*.rtf|"dlgHopThoai.FileName = "" '/// Khởi tạo trước
dlgHopThoai.Showopen
If dlgHopThoai.FileName <> "" Then ' /// Đã chọn file
rtfEditor.LoadFiledlgHopThoai.FileName, rtfRTF
End If
End Sub