Font Dialog là hộp thoại cho
phép người dùng chọn và thiết lập Font cho
văn bản.
Ta sử dụng
ShowDialog để hiển thị hộp thoại và thuộc tính Font để trả về font hiện tại.
Hình 2.78.
Hộp Font Dialog
Color Dialog là hộp thoại cho
phép người dùng chọn và hiển thị các màu
có sẵn trong bảng màu của Windows cũng như thiết lập thêm nhiều màu mới.
Ta cũng sử dụng
ShowDialog để hiển thị hộp thoại và thuộc tính Color để trả về màu được chọn.
Hình 2.79.
Hộp Color Dialog
Trong phần này chúng ta sẽ tìm hiểu về một số thuộc tính và phương thức thường dùng trong OpenFileDialog.
Hình 2.80.
Ứng dụng sử dụng OpenFileDialog
Bảng 2.37. Một số phương thức thường
dùng
Phương thức
|
Mô tả
|
Dispose
|
Giải phóng tài nguyên cấp phát cho
Dialog
|
ShowDialog
|
Hiển thị Dialog
|
Reset
|
Khởi tạo giá trị các thuộc
tính về mặt định
|
Trình tự đọc file Text:
- Khai báo và khởi tạo luồng đọc file: StreamReader() thuộc tính namespace System.IO.
- Đọc tất cả nội dung file một lần, hay
đọc từng dòng nội dung của
File.
·
ReadToEnd(): đọc
đến hết file Text.
·
ReadLine(): đọc từng dòng nội dung file Text (phương thức Peek() giúp dò tìm ký tự bất kỳ ở dòng kế tiếp).
- Giải phóng tài nguyên luồng đọc File: Dispose().
- Đóng luồng đọc file: Close().
*Lưu ý về đường dẫn:
Application.StartupPath trả về đường
dẫn đến thư mục hiện hành của dự án - thư mục Debug.
Ví dụ: Application.StartupPath + "\\hoten.txt" (tham chiếu đường dẫn đến file hoten.txt lưu trong thư mục hiện hành của dự án, không quan tâm đến dự án được lưu ở ổ đĩa nào, thư mục nào).
Lấy đường dẫn thư mục hiện hành: Directory.GetCurrentDirectory().
Thiết lập lại đường dẫn thư mục hiện hành: Directory.SetCurrentDirectory("thư mục hiện hành mới").
Kiểm tra sự tồn tại của File: File.Exits("Đường dẫn + tên File") (trả về True nếu có tồn tại và trả về False nếu file không tồn tại).
Trong phần này chúng ta sẽ tìm hiểu một số thuộc tính và
phương thức
thông dụng trong
SaveFileDialog.
Hình 2.81.
Ứng dụng sử dụng SaveFileDialog
Bảng 2.38. Một số thuộc tính thông dụng
SaveFileDialog
Thuộc tính
|
Mô tả
|
Title
|
Chỉ định tiểu đề của hộp
thoại
|
Filter
|
Chuỗi lọc các loại file trong danh sách (Files of type).
|
FileName
|
Trả về đường dẫn + tên tập
tin được chọn.
|
FilterIndex
|
Chỉ số của Filter được chọn,
chỉ số bắt đầu từ 1.
|
InitialDirrectory
|
Chỉ định thư mục hiện hành khi mở
hộp thoại
|
RestoreDirectory
|
Cho biết có khôi phục thư mục hiện
hành trước khi đóng hộp thoại hay không
|
AddExtension
|
Nếu là true sẽ cho phép thêm vào phần mở rộng
(jpg, gif) vào tập tin.
|
DefaultExit
|
Thêm phần mở rộng (.jpg, .gif, ...) cho tập tin nếu
người dùng không cung cấp phần mở rộng
*Lưu ý: Chỉ sử dụng khi thuộc tính AddExtension là
true
|
Bảng 2.39. Một số phương thức thông dụng
Phương thức
|
Mô tả
|
Dispose
|
Giải phóng tài nguyên cấp phát cho
Dialog
|
ShowDialog
|
Hiển thị Dialog
|
Reset
|
Khởi tạo các giá trị thuộc
tính về mặc định
|
Trình tự lưu file Text:
·
Khai báo và khởi tạo luồng ghi
file: StreamWriter() thuộc tính namespace System.IO
·
Ghi nội dung vào file:
-
Write("Nội dung"): ghi nội dung vào file và không xuống dòng sau khi ghi.
-
WriteLine("Nội dung"): ghi nội dung vào file và xuống dòng sau khi ghi.
·
Dispose(): giải phóng tài nguyên sử dụng cho TextWriter
·
Close(): đóng luồng ghi file.
·
*Lưu ý khi lưu
file text:
·
Khi ghi (lưu) nội dung vào file, nếu file chưa tồn tại thì sẽ tạo ra file mới.
·
Nếu file đã tồn tại, thì tùy
theo chỉ định của lập trình
viên trong luồng ghi file
mà file sẽ bị ghi đè nội dung hoặc ghi nối tiếp vào cuối nội dung hiện có.
Khởi tạo luồng ghi file:
StreamWriter = new StreamWriter("đường dẫn + tên
file", [true/false]). (False mặc định sẽ ghi đè lên nội dung file hiện có, True ghi tiếp theo vào cuối nội dung file hiện có).
Trong phần này sẽ thực hiện một
chương trình soạn thảo
văn bản
đơn giản sử dụng các Dialog. Cụ thể chúng ta
sẽ có một Form mẫu như dưới đây, sau đó thực hiện thêm một vài sự kiện.
Hình 2.82.
Thiết kế ứng dụng đọc / ghi tệp
Chương trình sẽ có chức năng như sau:
·
Khi người dùng nhấn nút "Mở tập tin" để
mở một tập tin có định dạng .txt.
Nội dung của tập tin này sẽ
được hiển thị lên TextBox (chỉ cho phép hiển thị tập tin .txt).
·
Người dùng nhấn nút "Lưu tập tin" để
lưu nội dụng vừa soạn thảo trong TextBox vào một thư mục nào đó trên hệ thống.
·
Khi người dùng nhấn nút "Thoát", hệ thống sẽ hiển thị hộp thoại hỏi người dùng có muốn
thoát hay không. Nếu chọn Yes thì thoát khỏi chương trình, nếu chọn No thì hủy bỏ lệnh.
Bây giờ chúng ta sẽ bắt đầu thiết kế giao diện cho giống với Form mẫu, cụ thể các điều khiển sau
đây:
·
3 Button với 3 chức năng khác nhau: Mở tập tin,
lưu tập tin, thoát.
·
1 OpenFileDialog để mở tập tin với định dạng .txt.
·
1 SaveFileDialog để lưu tập tin dưới
định dạng .txt.
·
1 TextBox để nhập và hiển thị nội dung.
·
1 Label để hiển thị tiêu
đề.
Sau khi tạo xong giao diện cho chương trình, bây giờ ta bắt đầu viết sự kiện cho các Button.
Bước 1: Xử lý sự kiện cho Button "Lưu tập tin".
Trong sự kiện này
chúng ta sẽ sử dụng SaveFileDialog để
lưu tập tin. Ta sẽ khởi tạo luồng lưu file, sau đó sử dụng Writeline (lưu nội dung vào file và xuống dòng sau khi ghi). Sau khi lưu ta cần sử dụng Dispose() để giải phóng tài nguyên sử dụng cho
TextWriter.
private
void
btnSave_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog()
== DialogResult.OK)
{
StreamWriter
w = new StreamWriter(saveFileDialog1.FileName);
string s = txtNhap.Text;
w.WriteLine(s);
w.Dispose();
w.Close();
}
}
|
Kết quả: Sau khi nhấn nút "Lưu tập tin" thì một cửa sổ mới hiện ra cho biết
bạn muốn lưu tập tin ở
đâu trong hệ thống. Ví dụ đã lưu tập tin với tên là "Example.txt".
Hình 2.83.
Lưu tệp tin
Bước 2: Xử lý sự kiện cho nút "Mở tập tin".
Tương tự như lưu tập tin, ta sử dụng OpenFileDialog để thực hiện mở tập tin. Ta cũng khởi tạo luồng ghi file sau đó sử dụng ReadToEnd để đọc hết file txt rồi gán nội dung
vào ô TextBox. Sau khi đọc nội dung ta
cần sử dụng Dispose() để giải phóng
tài nguyên luồng đọc file.
private
void
btnOpen_Click(object sender, EventArgs e)
{
if(openFileDialog1.ShowDialog()
== DialogResult.OK)
{
StreamReader
r = new StreamReader(openFileDialog1.FileName);
string s = r.ReadToEnd();
txtNhap.Text
= s;
r.Dispose();
r.Close();
}
}
|
Kết quả: Chúng ta sẽ mở lại tập tin "Example.txt" vừa được lưu ở trên nhé.
Hình 2.84.
Mở tệp tin
Bước 3: Xử lý sự kiện cho nút "Thoát".
Đối với sự kiện này thì ta đã xử lý khá nhiều,
vì đa số trong các ứng dụng đều có
sự kiện thoát giúp người dùng thoát khỏi chương trình.
private
void
btnOut_Click(object sender, EventArgs e)
{
DialogResult dg =
MessageBox.Show("Bạn có muốn đóng chương
trình", "Thông báo", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if(dg
== DialogResult.Yes)
{
Application.Exit();
}
}
|
FontDialog, ColorDialog, OpenDialog,
SaveDialog là các Dialog rất quan trọng trong hầu hết các ứng dụng do đó cần luyện tập thật nhiều, đảm bảo sử dụng thành thạo.