Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
V. RITCHTEXTBOX
***
1. Chức năng
Điều khiển RitchTextBox dùng để lưu trữ và hiển thị văn bản theo nhiều
định dạng khác nhau (định dạng chuẩn là rtf)
2. Một số thuộc tính thường dùng
Điều khiển RitchTextBox có rất nhiều các thuộc tính giống Textbox nói
riêng và các điều khiển khác nói chung. Ý nghĩa của các thuộc tính này là
giống nhau với các điều khiển. Ở đây chúng ta xét một số thuộc tính khác
của RitchTextBox
Tên Ý nghĩa
SelectedText Lấy về chuỗi được lựa chọn (chuỗi mà chúng ta bôi đen)
SelectionStart, SelectionLength Lấy về một chuỗi với vị trí bắt đầu và chiều dài, hai thuộc tính
này thường đi với nhau
SelectionFont Lấy thông tin về Font của một chuỗi được lựa chọn (bôi đen)
SelectionColor Lấy thông tin về Color của chuỗi được bôi đen được lựa chọn
CanUndo Trả lại hai giá trị True/False.
- True: có thể Undo lại được (như Word)
- False: Ngược lại
CanRedo Tương tự như thuộc tính CanUndo
3. Một số phương thức thường dùng
Tên Ý nghĩa
AppendText Nối một chuỗi vào RitchTextBox
Copy Xử lý phần nội dung bôi đen (như Word)
Cut
Paste
Find Tìm kiếm một xâu trong RitchTextBox
Focus Chuyển Focus vào RitchTextBox
LoadFile Đọc nội dung một file vào RitchTextBox
SaveFile Ghi nội dung của RitchTextBox ra file
Select Lấy ra một chuỗi trong RitchTextBox (tương tự TextBox)
SelectAll Lấy tất cả nội dung của RitchTextBox
Redo Xử lý Undo, Redo như Word
Undo
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
4. Minh họa sử dụng RitchTextBox bằng một số Code
Giả sử có một Textbox có tên là
richTextBox1
. Chúng ta sẽ minh họa RitchTextbox qua sự kiện click của một
Button có tên là bt
richTextBox
.
4.1. Việc sử dụng các thuộc tính SelectedText, SelectionStart, SelectionLength, CanUndo, CanRedo tương tự
như TextBox (Xem lại Code phần điều khiển TextBox)
4.2. Minh họa thuộc tính SelectionFont
private void btRichTextBox_Click(object sender, EventArgs e)
{
//Sử dụng thuộc tính Font có thể lấy thông tin về Font của vùng Bôi đen (không phải tất cả)
//Hoặc: Thay đổi Font của vùng bôi đen
//Trước hết lấy thông tin về Font
//InfoFont bao gồm tát cả các thông tin: Style, Tên Font...
string InfoFont = richTextBox1.SelectionFont.ToString();
MessageBox.Show(InfoFont);
//Chỉ lấy tên Font của vùng Bôi đen
string FontName = richTextBox1.SelectionFont.Name.ToString();
MessageBox.Show("Vùng bôi đen có Font là: " + FontName);
//Chỉ lấy Size của vùng Bôi đen
string FontSize = richTextBox1.SelectionFont.Size.ToString();
MessageBox.Show("Vùng bôi đen có Size là: " + FontSize);
//...................................................
}
4.3. Chọn Font cho vùng bôi đen thông qua thuộc tính SelectionFont (Chỉ vùng bôi đen)
private void btRichTextBox_Click(object sender, EventArgs e)
{
- 2 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
FontDialog fo = new FontDialog();
//Hiển thị hộp thoại
if (fo.ShowDialog() == DialogResult.OK)
{
//Nếu muốn đổi Font một đoạn lựa chọn thì dùng câu lệnh này
richTextBox1.SelectionFont = fo.Font;
//Còn nếu muốn đổi Font cho toàn bộ RichTextBox thì dùng câu lệnh này
//richTextBox1.Font = fo.Font;
}
}
4.4. Minh họa thuộc tính SelectionColor
private void btRichTextBox_Click(object sender, EventArgs e)
{
//Thuộc tính này lấy về màu của vùng được lựa chọn
//Tương tự như thuộc tính SelectionFont
string Color = richTextBox1.SelectionColor.Name.ToString();
MessageBox.Show(Color);
}
4.5. Đặt màu cho vùng bôi đen thông qua thuộc tính SelectionColor
private void btRichTextBox_Click(object sender, EventArgs e)
{
ColorDialog cl = new ColorDialog();
//Hiển thị hộp thoại
if (cl.ShowDialog() == DialogResult.OK)
{
//Nếu muốn đổi Font một đoạn lựa chọn thì dùng câu lệnh này
richTextBox1.SelectionColor = cl.Color;
}
- 3 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
}
4.6. Việc sử dụng các phương thức: AppendText, Select, SelectAll, Undo, Redo, Undo tương tự như Textbox
4.7. Minh họa sử dụng phương thưc LoadFile
private void btRichTextBox_Click(object sender, EventArgs e)
{
//Load nội dung File C:\NET.rtf vào RitchTextBox
//Tất nhiên ổ C của bạn phải tồn tại file C:\NET.rtf
richTextBox1.LoadFile(@"C:\NET.rtf");
//-> Thường sử dụng cùng với điều khiển OpenFileDialog để mở một file trên máy
}
4.8. Minh họa sử dụng phương thưc SavaFile
private void btRichTextBox_Click(object sender, EventArgs e)
{
//Lưu nội dung RitchTextBox ra file
richTextBox1.SaveFile(@"C:\File.rtf")
//-> Thường sử dụng cùng với điều khiển SaveFileDialog lưu file vào một nơi bất kì trên máy
}
4.9. Minh họa Phương thức Find
private void btRichTextBox_Click(object sender, EventArgs e)
{
//Tìm kiếm một chuỗi trong RichTextBox -> nếu có thì bôi đen kết quả tìm thấy
//Chú ý: Đặt thuộc tính HideSelection=False
//rtfNoiDung.Find("Chào", 0, 100, RichTextBoxFinds.Reverse);
- 4 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
//-> Ứng dụng trong tìm kiếm văn bản
richTextBox1.Find("chào", 0, 100, RichTextBoxFinds.MatchCase);
}
→ Sử dụng RitchTextBox viết chương trình soạn thảo văn bản đơn giản(tham khảo WordPad)
- 5 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
MỘT SỐ ĐIỀU KHIỂN XÂY DỰNG MENU
***
I. NOTIFY ICON
1. Chức năng
Điều khiển NotifyIcon cho phép bạn trình bày biểu tượng trên System
Tray của hệ điều hành (như biểu tượng của Unikey, IDM, SQL Server…). Mỗi
khi người dùng di chuyển chuột đến biểu tượng (icon) thì chuỗi khai báo
trong thuộc tính Text của điều khiển NotifyIcon sẽ xuất hiện (tương tự như
một tooltip – chú giải).
2. Một số thuộc tính thường dùng
Điều khiển Notify Icon có một số thuộc tính như sau:
Tên Ý nghĩa
Icon Icon sẽ xuất hiện dưới khay hệ thống khi Form hiển thị
Text Chuỗi xuất hiện khi bạn di chuyển chuột vào Icon dưới khay hệ thống
ConTextMenuStrip Menu Popup (menu ngữ cảnh) sẽ xuất hiện khi người dùng nhấn
chuột phải vào Icon dưới khay hệ thống
3. Minh họa sử dụng Notify Icon bằng một số Code
Giả sử chúng ta có một Form có tên là frmNotifyIcon. Bạn thêm một
điều khiển NotifyIcon vào frmNotifyIcon(mặc định nó có tên notifyIcon1) và
thêm một điều khiển ContextMenuStrip vào frmNotifyIcon (mặc định nó có tên
là contextMenuStrip1).
- 6 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
3.1. Sử dụng điều khiển NotifyIcon
• Bước 1: Kéo một điều khiển NotifyIcon vào form
• Bước 2: Kéo một điều khiển ContextMenuStrip vào form và tạo ra vài menu (để gắn với NotifyIcon)
• Bước 3: Đặt thuộc tính Icon cho điều khiển NotifyIcon (trỏ tới một icon nào đó).
• Bước 4: Đặt thuộc tính Text cho điều khiển NotifyIcon.
• Bước 5: Đặt thuộc tính ContextMenuStrip của điều khiển NotifyIcon là điều khiển ContextMenuStrip ở bước 2
• Bước 6: Chạy chương trình để thấy kết quả
3.2. Tạo và sử dụng NotifyIcon bằng Code
//Bạn viết trong sự kiện Load của Form
private void frmNotifyIcon_Load(object sender, EventArgs e)
{
//Khai báo đối tượng NotifyIcon
NotifyIcon ni = new NotifyIcon();
//Đặt các thuộc tính cho đối tượng này
Icon ic = new Icon("CongNgheNet.ico");//Bạn phải Copy một Icon có tên mà CongNgheNet vào thư mục Bin
ni.Icon = ic;
ni.Text = "Chuyên đề: Công nghệ .NET";
ni.ContextMenuStrip = contextMenuStrip1;");//Bạn phải xây dựng một điều khiển ContextMenuStrip: contextMenuStrip1
ni.Visible = true;
//Đặt một số thuộc tính cho Form
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
//Giờ bạn chạy để biết kết quả
}
3.3. Tạo Icon động dưới khay hệ thống
//Để tạo được Icon động trước hết bạn phải thêm điều khiển Timer vào form frmNotifyIcon
//Đặt một số thuộc tính cho điều khiển Timer này như sau: Interval=1000 (tương đương 1 giây) và Enabled = true
- 7 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
//Khai báo đối tượng NotifyIcon ở bên ngoài - Toàn cục
NotifyIcon ni = new NotifyIcon();
int i = 1;
//Sử dụng sự kiện Tick của điều khiển Timer để làm các icon động
private void timer1_Tick(object sender, EventArgs e)
{
//Copy 6 Icon vào thư mục bin: Icon1, Icon2, Icon3, icon4, icon5, Icon6
string FileIconName = "Icon" + i.ToString() + ".ico";
Icon ico = new Icon(FileIconName);
ni.Icon = ico;
ni.Visible = true;
this.ShowInTaskbar = true;
//Tăng i
i++;
if (i > 6)
i = 1;
}
3.4. Tạo Icon động dưới khay hệ thống (cách 2)
//Để tạo được Icon động trước hết bạn phải thêm điều khiển Timer vào form frmNotifyIcon
//Đặt một số thuộc tính cho điều khiển Timer này như sau: Interval=1000 (tương đương 1 giây) và Enabled = true
//Khai báo đối tượng NotifyIcon ở bên ngoài - Toàn cục
NotifyIcon ni = new NotifyIcon();
//Khai báo mảng Icon chứa các Icon
Icon[] MangIcon;
int Index = 0;
//Load các Icon vào mảng Icon
private void frmNotifyIcon_Load(object sender, EventArgs e)
- 8 -