Tài liệu về công nghệ .NET
Trang 1AcceptButton Giá trị mà thuộc tính này nhận là tên của một Button trên
Form (Nếu Form có chứa button) Khi đó nếu bạn nhấn
phím Enter thì sự kiện Click của Button mà bạn chọn
được thực thi mà không cần nhấn chuột vào Button đó.Autosize Nhận một trong hai giá trị True hay False
- True: Không cho phép thay đổi kích thước Form màche đi các điều khiển khác chứa trên Form
- False: Ngược lạiAutoSizeMode Cho phép thay đổi kích thước của Form hay không? (Khi
di chuyển chuột vào các mép của Form mà hiện nên
biểu tượng ↔ là cho phép) Và nhận một trong hai giá trị
- GrowOnly: Cho phép
- và GrowAndShrink: Không cho phép
BackGroundImage Chọn ảnh làm nền cho Form
CancelButton Giá trị mà thuộc tính này nhận là tên của một Button trên
Form (Nếu Form có chứa button) Khi đó nếu bạn nhấn
phím ESC thì sự kiện Click của Button mà bạn chọn
được thực thi mà không cần nhấn chuột vào Button đó(tương tự như thuộc tính AcceptButton )
ControlBox Nhận một trong hai giá trị True hay False
- True: Cho phép các các nút: MaximizeBox,MinimizeBox, Close trên Titlebar xuất hiện
- False: Không Cho phép các các nút: MaximizeBox,MinimizeBox, Close trên Titlebar xuất hiện (Khi đócác thuộc tính MaximizeBox, MinimizeBox của Formcũng mất đi)
Font Chọn kiểu Font chữ cho Form (Khi đó tất cả các điều
khiển được thêm vào Form sẽ có thuộc tính Font giốngnhư thuộc tính Font của Form)
ForeColor Tương tự như thuộc tính Font nhưng áp dụng đối với
màu chữFormBorderStyle Chọn Style cho Form (Có 7 lựa chọn khác nhau)
Trang 2HelpButton Nhận một trong hai giá trị True hay False.
- True: Cho phép xuất hiện Buton có dấu ? trên
Titlebar (Với điều kiện: hai thuộc tính MaximizeBox,MaximizeBox phải đặt giá trị là False)
- False: Ngược lại
→ Thuộc tính này sẽ hay đi kèm với điều khiển
HelpProvider về sau
Icon Chọn một Icon (có đuôi mở rộng là ico) trên máy tính
của bạn thay cho Icon mặc định của Form mà VS tạo raKeyPreview Nhận một trong hai giá trị True hay False
- True: Cho phép các sự kiện về bàn phím của Form(KeyUp, KeyDown, KeyPress… của Form) có hiệulực
- False: Ngược lạiMaximizeBox Nhận một trong hai giá trị True hay False
- True: Cho phép nút MaximizeBox trên Titlebar cóhiệu lực
- False: Ngược lạiMaximizeBox Tương tự như thuộc tính MaximizeBox
ShowIcon Nhận một trong hai giá trị True hay False
- True: Cho phép xuất hiện Icon của Form
- False: Không cho phép xuất hiện Icon của FormShowInTaskbar Nhận một trong hai giá trị True hay False
- True: Cho phép hiện Form dưới khay Taskbar
- False: Ngược lạiStartPosition Vị trí hiển thị của Form so với màn hình hệ thống hay
Form cha (5 lựa chọn khác nhau)
WindowState Trạng thái hiển thị của Form khi chạy (Khi bạn nhấn vào
nút Run của VS) (Có 3 lựa chọn khác nhau: Ẩn dưới
khay Taskbar, mở rộng hết màn hình…)
3 Sự kiện
Một số sự kiện thường dùng
AutoSizeChanged Xảy ra khi thuộc tính Autosize của Form chuyển từ True
→ False hay ngược lại là False → True
BackColorChanged Xảy ra khi thuộc tính BackColor của Form thay đổi
Click Xảy ra khi người dùng Click chuột vào vùng làm việc
thuộc FormControlAdded Xảy ra khi một điều khiển được Add vào Form
ControlRemoved Xảy ra khi một điều khiển bị xóa khỏi Form
CursorChanged Xảy ra khi thuộc tính Cursor của Form thay đổi
DoubleClick Xảy ra khi người dùng DoubleClick vào vùng làm việc
của Form
Trang 3FontChanged Xảy ra khi thuộc tính Font của Form có sự thay đổi
ForeColorChanged Xảy ra khi thuộc tính ForeColor của Form có sự thay đổi
FormClosed Xảy ra khi Form đã đóng (Nhấn vào nút X màu đỏ trên
Titlebar)FormClosing Xảy ra khi Form đang đóng (2 sự kiện FormClosed và
FormClosing thường dùng trong lập trình CSDL: khi xảy
ra sự kiện này thì đóng kết nối CSDL)KeyDown Xảy ra khi người dùng nhấn một phím hay một tố hợp
phím (tùy thuộc vào xử lý của chúng ta)KeyPress Xảy ra khi người dùng nhấn một phím
KeyUp Xảy ra khi người dùng nhả một phím.
MouseClick Xảy ra khi người dùng nhấn chuột (một trong 3 lựa chọn:
Trái, giữa, phải)MouseDoubleClick Xảy ra khi người dùng DoubleClick chuột vào một vùng
làm việc của Form(một trong 3 lựa chọn: Trái, giữa,phải)
MouseDown Xảy ra khi người dùng nhấn chuột
MouseHover Xảy ra khi người dùng di chuyển vào các vùng làm việc
FormMouseLeave Xảy ra khi di chuyển chuột ra khỏi vùng làm việc của
Form MouseMove Xảy ra khi di chuyển chuột trên một vùng làm việc thuộc
Form (nếu Form có chứa một điều khiển nào đó, khi dichuyển chuột trên điều khiển này thì không xảy ra sự
kiện MouseMove của Form).
MouseUp Xảy ra khi người dùng nhả nhấn chuột (có thể là chuột
trái, chuột phải, chuột giữa - chuột cuộn)Move Xảy ra khi di chuyển Form (có sự thay đổi vị trí của
Form)StyleChanged Xảy ra khi thuộc tính FormBorderStyle của Form thay
đổiTextChanged Xảy ra khi thuộc tính Text của Form thay đổi.
Trang 44 Minh họa một số sự kiện của Form (Code) (Với Form có tên là frmForm)
4.1 Sự kiện FormClosed
//Sự kiện FormClosed - Sự kiện này được gọi khi Form đã đóng
private void frmForm_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("Sự kiện FormClosed được gọi", "FormClosed",MessageBoxButtons.OK,MessageBoxIcon.Information); }
4.2 Sự kiện FormClosing
//Sự kiện FormClosing xảy ra khi Form đang đóng
private void frmForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Bạn có muốn đóng Form lại hay không?", "FormClosing",
MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
e.Cancel = false;// Đóng Form lại
//Nếu không chỉ rõ phím nào được nhấn thì khi nhấn bất cứ phím nào sự kiện KeyPress của Form đều xảy ra
//Chỉ rõ phím nào được nhấn thì phát sinh sự kiện KeyPress làm như sau
if (e.KeyChar = 'a')
MessageBox.Show("Sự kiện KeyPress xảy ra khi bạn nhấn phím a");
}
//Sự kiện KeyUp tương tự như sự kiện KeyPress
//Sự kiện KeyDown xảy ra khi nhấn một phím hay tổ hợp phím
Trang 54.4 Sự kiện KeyDown
private void frmForm_KeyDown(object sender, KeyEventArgs e)
{
//khi nhấn một phím bất kì trên bàn phím thì sự kiện KeyPress được gọi
//Đồng thời sự kiện KeyDown cũng được gọi → KeyPress là trường hợp riêng của KeyDown //Áp dụng: Nhấn một tổ hợp phím thì sự kiện KeyDown mới được gọi
//Như Windows Media: Nhấn Ctrl+F để di chuyển bài tiếp theo
if (e.KeyCode == Keys.F && e.Modifiers == Keys.Control)
MessageBox.Show("Sự kiện KeyDown được gọi khi bạn nhấn Ctrl + F");
//Còn nếu bạn muốn bắt được sự kiện người dùng nhấn chuột TRÁI, PHẢI, hay GIỮA làm thế này
if (e.Button == MouseButtons.Left)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click chuột TRÁI");
elseif (e.Button==MouseButtons.Middle)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click chuột GIỮA");
elseif (e.Button==MouseButtons.Right)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click chuột PHẢI");
}
//Các sự kiện MouseDoubleClick, MouseDown, MouseUp Xử lý tương tự
Trang 6TẬP HỢP (COLLECTION)
***
1 Khái niệm Collection
Là một kiểu dữ liệu dùng lưu trữ nhiều phần tử có cùng đặc tính Ví dụ: Mảng, Tập các nút lệnh chứa trên Form, tập các phần tử (Item) của Combobox, Listbox……….
2 Một biến thuộc tập hợp sẽ có các thuộc tính và các phương thức sau
- Count/Length: Lấy về số phần tử của tập hợp.
- Add, AddRange: Thêm phần tử vào tập hợp.
- Remove, RemoveAt: Xóa phần tử khỏi tập hợp.
- Clear: Xóa toàn bộ các phần tử khỏi tập hợp.
- Insert: Chèn một phần tử vào tập hợp (Khác với Add luôn thêm phần tử mới vào cuối tập hợp, Insert thêm vào một vị trí xác định nào đó trong tập hợp).
- Items[i]: Lấy một phần tử thứ i trong tập hợp.
- ………
3 Duyệt các phần tử trong Tập hợp
Để duyệt các phần tử trong tập hợp người ta thường sử dụng vòng lặp
ForEarch
foreach (biến in biến_Tập_hợp)
{Xử lý giá trị lấy được}
4 Minh họa tập hợp
Giả sử có một Combobox có tên Combobox1 Chúng ta sẽ minh họa về
tập hợp thông qua các phần tử (Item) của Combobox này bằng sự kiện Click
của một Button có tên btCollection
Trang 7//Add thêm một phần tử vào Combobox ->Sử dụng phương thức Add
//Phần tử này luôn luôn được đưa vào cuối cùng
MessageBox.Show("Số phần tử của Combobox là: "+x.ToString());
//Lấy giá trị là một phàn tử nào đó
Trang 8private void btForEach_Click(object sender, EventArgs e)
Trang 9- Suggest: Hiển thị kết qủa ra bên dưới
- Append: Tự động điền vào Combobox và không hiểnthị ra bên dưới
- SuggestAppend=Suggest+AppendAutoCompleteSource Chọn nguồn các Item cho Combobox sử dụng tính năng
AutoComplete Chú ý một số lựa chọn sau:
- HistoryList: Danh sách các Url lưu trong History củaIE
- ListItems: Các phần tử của Combobox được thêmvào thông qua thuộc tính Items
- CustomSource: Giá trị các phần tử trong thuộc tínhAutoCompleteCustomSource
Cursor Hình dáng của chuột khi di chuyển vào ComboboxDataSource Chọn nguồn dữ liệu (nguồn các phần tử) cho
Combobox (Có thể là một mảng dữ liệu kiểu string, một
trường trong CSDL…)
Enabled Cho phép Combobox có hiệu lực hay không?
ForeColor Chọn màu chữ của các phần tử (Item) của ComboboxItems Quản lý các phần tử trong Combobox (thêm các phần
tử vào Combobox, xóa đi…)Text Giá trị ứng với phần tử đang được chọn
Sorted Nếu chọn là True: Tự động sắp xếp các phần tử trong
Combobox theo giá trị tăng dầnSelectedIndex Get/Set chỉ số của phần tử đang chọn
Trang 10Chú ý: Các điều khiển có rất nhiều thuộc tính giống nhau: Anchor, Dock,
Font, ForeColor, Enabled, Visible, TabIndex……Các thuộc tính này là giống nhau với tất cả các điều khiển
3 Một số phương thức
AddRange Thêm một mảng các phần tử vào Combobox
……… → Tập các Item có các phương thức và thuộc tính của Collection
4 Một số Sự kiện thường dùng
SelectedIndexChanged Xảy ra khi người dùng chọn phần tử khác khác
Chú ý: Các điều khiển (Form, Label ,Button…) có rất nhiều các sự kiện giống nhau Ý nghĩa của các sự kiện này là giống nhau với các điều khiển
5 Minh họa sử dụng Textbox bằng một số Code
Trang 115.1 Minh họa thuộc tinh Sorted
private void btCombobox_Click(object sender, EventArgs e)
//Duyệt các phần tử của Combobox - Trước khi gọi thuộc tính Sorted
foreach (string str in comboBox1.Items)
MessageBox.Show(str);// Thứ tự in ra là : 5, 1,3,4,8,7
//Gọi thuộc tính Sorted
comboBox1.Sorted=true;
//Duyệt các phần tử của Combobox - Saukhi gọi thuộc tính Sorted
foreach (string str in comboBox1.Items)
MessageBox.Show(str);// Thứ tự in ra là : 1,3,4,5,7,8
}
5.2 Lấy danh sách ổ đĩa vào Combobox - Minh họa thuộc tính DataSource
//Lấy danh sách các ổ đĩa vào Combobox: Minh họa cho phương thức AddRange hay thuộc tính DataSource của một Combobox
private void btGetDriver_Click(object sender, EventArgs e)
{
//Để thao tác vơi File, Folder Trong C# hỗ trợ lớp Directory
//Lớp Directory là lớp tĩnh và nằm trong NameSpace: System.IO;
//Muốn dùng lớp này phải khai báo: using System.IO; ^.^
//Kết quả Directory.GetLogicalDrives() trả về một mảng kiểu string
Trang 12string[] MangDriver = Directory.GetLogicalDrives();
//Đưa vào Combobox có thể dùng một trong hai câu lệnh sau
//Câu lệnh 1: comboBox1.DataSource = MangDriver;
comboBox1.DataSource = MangDriver;
comboBox1.SelectedIndex = 3;
//Câu lệnh hai: comboBox1.Items.AddRange(MangDriver);
//Chú ý: Muốn sử dụng câu lệnh 2 thì xóa câu lệnh 1 hay để ở dạng chú thích }
→ CÁC ĐIỀU KHIỂN LISTBOX, CHECKLISTBOX HOÀN TOÀN TƯƠNG TỰ
Trang 13III WEB BROWSER
ScrollBarsEnabled Nhận một trong hai giá trị True hay False
- True: Cho phép điều khiển hiển thị thanh cuộn
- False: Ngược lạiUrl Giá trị mà thuộc tính này nhận là một chuỗi String (Có
thể là tên một Website, đường dẫn tới một File…) màWebBrowser sẽ hiển thị
3 Một số phương thức thường dùng
Navigate Hiển thị nội dung File với tham số truyền vào
VD: webBrowser1.Navigate("C:\\WindowsForrmInC#.ppt");
4 Minh họa sử dụng WebBrowser bằng một số Code
Giả sử có một điều khiển có tên webBrowser1 chúng ta sẽ minh họa sử dụng điều khiên này qua sự kiện Click của một Button có tên là: btWeb
Trang 144.1 Minh họa thuộc tính Url
//Đặt thuộc tính Url thông qua mã Code
//webBrowser1 là tên điều khiển WebBrowser
private void btWeb_Click(object sender, EventArgs e)
}
4.2 Minh họa phương thức Navigate
//Hiển thị một trang Web hay Một File nào đó -> Sử dụng phương thức Navigate
private void btWeb_Click(object sender, EventArgs e)
{
//Hiển thị Website
webBrowser1.Navigate(@"mail.google.com");//(1)
//<->webBrowser1.Url = new Uri(@"http://mail.google.com/");
//Chú ý: Muốn sử dụng (1) phải cho (2) và (3) vào dạng chú thích
//Vì một lúc webBrowser không thể hiển thị cả Website, cả ảnh, vả file PPT
//Hiển thị File PowerPoint
Trang 154.3 Phương thức thường dùng
//Phương thức hay dùng xử lý với WebBrowser để tạo ra trình duyệt Web
private void Navigate(String address)
Trang 16AcceptsTab Nhận một trong hai giá trị True hay False
- True: Khi nhấn phím Tab thì con trỏ (Focus)chỉ di chuyển bên trong Textbox (Với điều kiệnthuộc tính Multiline=True)
- False: Khi nhấn Tab thì Focus di chuyển qualại giữa các điều khiển trên Form
→ Thuộc tính này hay đặt bằng True trong cácứng dụng soạn thảo văn bản
AutoCompleteCustomSource Ba thuộc tính này ý nghĩa tương tự như của
thuộc tính của điều khiển ComboboxAutoCompleteMode
AutoComplete Source
BorderStyle Chọn kiểu đường viền cho Textbox
ContextMenuStrip Chọn Menu ngữ cảnh khi nhấn chuột phải vào
Textbox Dock Vị trí bám dính và điền đầy của Textbox với Form
HideSelection Nhận một trong hai giá trị True hay False
- True: Không cho phép các thuộc tính:SelectionStart…có hiệu lực
- False: Ngược lạiMaxLenght Số lượng kí tự lớn nhất cho phép nhập vào
TextboxMultiline Nhận một trong hai giá trị True hay False
- True: Cho phép nhập và hiển thị giá trị củaTextbox trên nhiều dòng (người dùng có thểnhìn thấy toàn bộ giá trị Text của nó)
- False: Cho phép nhập/hiển thị giá trị củaTextbox trên một dòng
PasswordChar Hiển thị giá trị của Textbox dưới dạng các kí tự
mà bạn thay thế (kí tự do người dùng nhập vào:
*, # )ReadOnly
ScrollBars Cho phép hiển thị thanh trượt hay không? (Với
điều kiện thuộc tính Multiline=True mới nhìn thấythanh cuộn)
TabIndex
Trang 17CanUndo Trả lại hai giá trị True/False
- True: có thể Undo lại được (như Word)
- False: Ngược lạiCác thuộc tính SelectionText o SelectedText
o SelectionStart
o SelectionLength
o ………
Chú ý: Các điều khiển có rất nhiều thuộc tính giống nhau: Anchor, Dock,
Font, ForeColor, Enabled, Visible, TabIndex……Về ý nghĩa các thuộc tính này là giống nhau với tất cả các điều khiển
3 Một số phương thức thường dùng
AppendText Nối một chuỗi (string) vào giá trị Text hiện có của
TextboxCopy Xử lý phần nội dung bôi đen (như Word)
Cut
Paste
Focus Chuyển Focus (con trỏ) vào TextBox
Select Lấy ra một chuỗi trong Textbox (xem Code)
SelectAll Lấy tất cả giá trị của Textbox
4 Một số sự kiện thường dùng
KeyPress Xảy ra khi người dùng nhấn phím trên bàn phím (tất
nhiên Textbox phải đang Focus – Áp dụng sự kiện này
để xử lý không cho phép nhập chữ vào Textbox…)MouseClick Xảy ra khi người dùng Click chuột trên điều khiển
TextboxTextChanged Xảy ra khi giá trị Text của Texbox (hay gọi giá trị
Textbox) thay đổi
5 Minh họa sử dụng Textbox bằng một số Code
Giả sử có một Textbox có tên là Textbox1 Chúng ta sẽ minh họa Textbox qua sự kiện click của một Button có tên là btTextbox.
Trang 185.1 Minh họa thuộc tính Text của Textbox
private void btTextbox_Click(object sender, EventArgs e)
{
//Trước khi gán thuộc tính text
MessageBox.Show("Giá trị textbox trước khi gán: "+ textBox1.Text);
5.2 Minh họa thuộc tính SelectedText
private void btTextbox_Click(object sender, EventArgs e)
{
//Thuộc tính SelectedText lấy ra một chuỗi mà bạn bôi đen (Chọn)
//Bạn hãy bôi đen một vài từ trong Textbox sau đó Click vào Button này sẽ hiển thị
//Message thông báo từ bạn chọn
string str = textBox1.SelectedText;
MessageBox.Show("Từ bạn vừa chọn (bôi đen) là: "+str);
}
5.3 Minh họa thuộc tính SelectionStart và SelectionLength
private void btTextbox_Click(object sender, EventArgs e)
{
//Thuộc tính này dùng trong tìm kiếm rất nhiều
//Thuộc tính SelectionStart: Ví trí bắt đầu Select
//Thuộc tính SelectionLength: Chiều dài của vùng lựa chọn
//Chú ý: Đặt thuộc tính HideSelection=False
//Ví dụ: Tìm kiếm xem giá trị của Textbox có từ nào là chào hay không Nếu có thì nó tự Bôi đen từ đó string str = "chào";
int i;
Trang 195.4 Minh họa thuộc tính CanUndo và phương thức Undo
private void btTextbox_Click(object sender, EventArgs e)
{
//Nếu có thể Undo (có nghĩa: Bạn phải gõ văn bản vào Textbox rồi sửa, xóa )
//Mới có thể Undo lại được
if (textBox1.CanUndo)
textBox1.Undo();
}
5.5 Minh họa phương thức Select
private void btTextbox_Click(object sender, EventArgs e)
{
//Cú pháp chung: txtNoiDung.Select(Start, Length);
//Mục đích để lấy về một chuỗi từ từ vị trí nào và chiều dài của chuỗi dược chọn (tất nhiên: bôi đen vùng này) //-> Phương thức này tương đương với sử dụng 2 thuộc tính SelectionStart và SelectionLength
Trang 205.6 Minh họa phương thức AppendText
private void btTextbox_Click(object sender, EventArgs e)
{
//Giá trị Textbox trước khi gọi phương thức
MessageBox.Show("Trước: "+textBox1.Text);
//Gọi phương thức
textBox1.AppendText("Khoa CNTT - UTEHY");
//Giá trị Textbox trước khi gọi phương thức
MessageBox.Show("Sau: " + textBox1.Text);
}
5.7 Xử lý chỉ cho phép Textbox nhập số (sự kiện KeyPress của Textbox) – Cách 1
private void txtNoiDung_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= '0' && e.KeyChar <= '9')
e.Handled = false;//Handled: Được xử lý
else
e.Handled = true;
}
5.8 Xử lý chỉ cho phép Textbox nhập số (sự kiện KeyPress của Textbox) – Cách 2
private void txtNoiDung_KeyPress(object sender, KeyPressEventArgs e)
Trang 21//kiểm tra xem phím vừa nhập vào textbox có phải là các ký tự điều khiển
//(các phím mũi tên,Delete,Insert,backspace,space bar…) hay không, mục đích dùng hàm này là để cho phép người dùng xóa
số trong trường hợp nhập sai
}
→ Sử dụng Textbox viết chương trình soạn thảo văn bản đơn giản (tham khảo Notepad)
Trang 22SelectedText 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 nhauSelectionFont 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ọnCanUndo Trả lại hai giá trị True/False
- True: có thể Undo lại được (như Word)
- False: Ngược lại
3 Một số phương thức thường dùng
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
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
Undo
Trang 234 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à btrichTextBox.
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)
{
Trang 24FontDialog fo = newFontDialog();
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)
Trang 25}
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)
4.9 Minh họa Phương thức Find
private void btRichTextBox_Click(object sender, EventArgs e)
Trang 26richTextBox1.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)
Trang 27MỘT SỐ ĐIỀU KHIỂN XÂY DỰNG MENU
***
5 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).
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)
Trang 283.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 = newIcon("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
//Khai báo đối tượng NotifyIcon ở bên ngoài - Toàn cục
Trang 29NotifyIcon ni = newNotifyIcon();
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 = newIcon(FileIconName);
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 = newNotifyIcon();
//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)
{
Trang 30//Copy 6 Icon vào thư mục bin: Icon0, Icon1, Icon2, Icon3, icon4, icon5 MangIcon = newIcon[6];
MangIcon[0] = new Icon("Icon0.ico");
MangIcon[1] = new Icon("Icon1.ico");
MangIcon[2] = new Icon("Icon2.ico");
MangIcon[3] = new Icon("Icon3.ico");
MangIcon[4] = new Icon("Icon4.ico");
MangIcon[5] = new Icon("Icon5.ico");
}
//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)
{
ni.Icon = MangIcon[Index];
ni.Visible = true;
this.ShowInTaskbar = true;
//Tăng Index và Kiểm tra
Index++;
if (Index > 5) Index = 0;
}
Trang 31II IMAGE LIST
***
5 Chức năng
Điều khiển ImageList dùng để quản lý tập các Image (Image, Icon…) Thường sử dụng điều khiển ImageList với các điều khiển khác: ListView, TreeView, Toolbar, NotifyIcon…
6 Một số thuộc tính thường dùng
Icon vào thông qua giao diện (Cửa sổ Properties) hay
mã lệnh (Tập các Image trong ImageList là mộtCollection nên nó có đầy đủ các phương thức củaCollection)
Truy xuất tới một Image trong ImageList theo cú pháp:
Tên_ImageList.Images[Index];
ImageSize Kích cỡ của Image (Mặc định là 16x16)
→ BT: Sử dụng điều khiển ImageList kết hợp với điều khiển NotifyIcon
viết chương trình tạo Icon động (không biết có làm được không? ^_^).
Trang 32III MENU STRIP
***
1 Chức năng
Điều khiển MenuStrip cho phép thiết kế hệ thống menu trên Form (menu một cấp hay nhiều cấp) Ví dụ hệ thống menu của chương trình Word, Visual Studio 2008….MenuStrip cho phép thiết kế menu với các điều khiển:
Textbox, Combobox, gạch phân cách) Thông qua giaodiện đồ họa bạn có thể thêm các menu vào (tập cácItems này là một Colleciton)
RightToLeft Nhận một trong hai giá trị Yes hay No
- Yes: trình bày menu từ phải qua trái
- No: trình bày menu từ trái qua phải
3 Các điều khiển bên trong MenuStrip
Checked Nhận một trong hai giá trị True hay False
- True: cho phép xuất hiện biểu tượng Checkbox bêncạnh chuỗi Text của ToolStripMenuItem
- False: Ngược lại
Trang 33CheckOnClick Nhận một trong hai giá trị True hay False
- True: Biểu tượng Checkbox xuất hiện bên cạnh chuỗiText của ToolStripMenuItem (MenuItem) mỗi khingười dùng Click chọn vào nó
- False: Ngược lạiCheckState Trạng thái của Checkbox bên cạnh chuỗi Text của
menu Và nhận một trong 3 giá trị: UnChecked, Checked, Indeterminate (Chú ý: Thuộc tínhChecked=True thì thuộc tính này mới có hiệu lực Hiển
nhiên rồi phải không? ☺)
DisplayStyle Hình thức trình bày của Menu và nhận một trong 4 giá trị
- None: Không hiển thị gì cả (Text và Image)
- Text: Chỉ cho phép xuất hiện chuỗi mô tả
- Image: Chỉ cho phép xuất hiện ảnh( hoặc Icon) bêncạnh Text (xuất hiện ở phía ngoài cùng bên trái)
- ImageAndText=Image+TextImage Hình ảnh xuất hiện bên cạnh chuỗi Text (chuỗi khai báo
bên trong thuộc tính Text của MenuItem) ImageScaling Chọn hình thức trình bày của ảnh xuất hiện bên cạnh
chuỗi Và nhận một trong hai giá trị
- None: BÌnh thường
- SizeToFit: Hiển thị đúng kích cỡ của Image hay Icon.ShortcutKeyDisplayString Chuỗi trình bày ứng với phím tắt mô tả cho MenuItem đó
(Nối vào Text của MenuItem ví dụ: Open Ctrl+O)
ShortcutKeys Chọn tổ hợp phím tắt ứng với MenuItem đó
ShowShortcutKeys Nhận một trong hai giá trị True hay False
- True: Cho phép trình bày chuỗi tổ hợp phím tắt của
ShortcutKeyDisplayString mới có hiệu lực).
- False: Ngược lạiText Chuỗi trình bày MenuItem, bạn có thể sử dụng kí tự &
trước kí tự để sử dụng với phím Alt (phím nóng - phímtắt)
TooltipText Chuỗi trợ giúp khi người dùng di chuyển chuột đến điều
khiển MenuItem đóVisible
3.2.2 Một số sự kiện thường dùng
CheckedChange Xảy ra khi trạng thái của Checkbox thay đổi
3.3 ToolStripCombobox
Các thuộc tính, phương thức, sự kiện của ToolStripCombobox giống
với điều khiển Combobox → Xem lại điều khiển Combobox
3.4 ToolStripTextbox (Textbox)
Trang 34Các thuộc tính, phương thức, sự kiện của ToolStripTextbox giống với
điều khiển Combobox → Xem lại điều khiển Textbox
IV CONTEXT MENU STRIP
Trang 351 Chức năng
Điều khiển ContextMenuStrip dùng để thiết kế menu popup (menu ngữ cảnh – menu xuất hiện khi người dùng nhấn chuột phải Ví dụ: khi người dùng nhấn chuột phải vào Desktop xuất hiện một menu – đó chính là menu ngữ popup)
Để xuất hiện các menu Popup khi người dùng nhấn chuột phải vào các điều khiển (form, button, label, textbox…) bạn chỉ cần khai báo thuộc tính
ContextMenuStrip của các điều khiển đó là một điều khiển ContextMenuStrip.
Điều khiển ContextMenuStrip cho phép thiết kế menu với các điều khiển sau (tương tự như điều khiển MenuStrip)
Combobox, gạch phân cách) Thông qua giao diện đồ
họa bạn có thể thêm các menu vào (Collection)
RightToLeft Nhận một trong hai giá trị True hay False
- True: Trình bày menu từ phải qua trái (căn lề là bênphải)
- False: Trình bày menu từ trái qua phải (căn lề là bêntrái)
ShowImageMargin Hiển thị phần hình ảnh?
3 Các điều khiển bên trong ContextMenuStrip
→ Hoàn toàn tương tự các điều khiển bên trong điều khiển MenuStrip (ToolStripSeparator (Gạch phân cách), ToolStripMenuItem (Menu con), ToolStripCombobox (Combobox), ToolStripTextbox (Textbox))
Chú ý: Nhóm các điều khiển menu còn có một số điều khiển: MainMenu (không có sẵn trong hộp công cụ Toolbox), StatusStrip, ToolStrip
MỘT SỐ ĐIỀU KHIỂN HỘP THOẠI (DIALOG)
Trang 36AddExtension Nhận một trong hai giá trị True hay False
- True: Cho phép thêm vào tên mở rộng (.txt, jpg…)vào file
- False: Ngược lạiCheckFileExists Nhận một trong hai giá trị True hay False
- True: Xuất hiện hộp cảnh báo nếu bạn nhập vào một
tên file không tồn tại (nhập vào ô File name: trên
File Text (*.txt)|*.txt| Word File (*.doc)|*.doc;
FilterIndex Chọn số thứ tự cho bộ lọc (bộ lọc sẽ hiển thị trong mục
Files Of Types)
FileName Set or Get tên tệp tin bạn chọn
FileNames Set or Get mảng chứa tệp tin chọn (trong trường hợp
chọn nhiều tập tin)InitialDirectory Đường dẫn mặc định khi hộp thoại OpenFileDialog mở
raMultiselect Nhận một trong hai giá trị True hay False
- True: Cho phép bạn chọn nhiều tập tin (ví du: Chọnnhiều bản nhạc để nghe…)
- False: Ngược lạiReadOnlyChecked Nhận một trong hai giá trị True hay False
- True: Check vào hộp thoại Checkbox Open as Only bên dưới Combobox Files Of Types
Read False: Ngược lại (☻)
(với điều kiện thuộc tính ShowReadOnly = True)
RestoreDirectory Nhận một trong hai giá trị True hay False
- True: Mở lại thư mục vừa mở ra lần trước, với điều
Trang 37kiện thuộc tính InitialDirectory không đặt gì
- False: Không mở lại thư mục vừa mở lần trước ShowReadOnly Nhận một trong hai giá trị True hay False
- True: Xuất hiện hộp Checkbox Open as Read-Only bên dưới Combobox Files Of Types
- False: Ngược lạiTitle Đặt tiêu đề (xuất hiện trên Titlebar) cho hộp thoại
OpenFileDialog
3 Minh họa sử dụng hộp thoại OpenFileDialog
Giả sử chúng ta có một form có tên: frmOpenFileDialog, trên form có một điều khiển Textbox có tên Textbox1và một điều khiển OpenFileDialog có tên
openFileDialog1 Chúng ta sử dụng hộp thoại OpenFileDialog để load nội
dung một tệp text vào Textbox
Trang 38private void frmOpenFileDialog_Load(object sender, EventArgs e)
openFileDialog1.FilterIndex = 0;//Chọn bộ lọc "File Text (*.txt)|*.txt" -> Chỉ chọn file Text
openFileDialog1.FileName = "";//thay cho chuỗi openFileDialog1 xuất hiện trong hộp FileName openFileDialog1.InitialDirectory = "C:\\"; //Mở ổ C khi hộp thoại này hiển thị
openFileDialog1.Multiselect = true;
openFileDialog1.ShowReadOnly = true;//Xuất hiện Checkbox
openFileDialog1.Title = "Cong nghe NET";
//Kiển tra hộp thoại có mở ra không
//Sử dụng phương thức ShowDialog()
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//Lấy về File bạn chọn Giả sử tôi chọn File C:\CongNgheNET.txt
string FileBanChon = openFileDialog1.FileName;
Trang 39II SAVE FILE DIALOG
AddExtension Nhận một trong hai giá trị True hay False
- True: Cho phép thêm vào tên mở rộng (.txt, jpg…)
- False: Ngược lạiCheckFileExists Nhận một trong hai giá trị True hay False
- True: Xuất hiện hộp cảnh báo nếu bạn nhập vào
một tên file không tồn tại (nhập vào ô File name:
trên hộp thoại SaveFileDialog )
- False: Ngược lạiCheckPathExists Nhận một trong hai giá trị True hay False
- True: Kiểm tra đường dẫn tới file có hợp lệ haykhông trước khi trả về
- False: Ngược lạiFilter Chọn bộ lọc cho hộp thoại (Chỉ chọn File nào) Ví dụ:
File Text (*.txt)|*.txt| Word File (*.doc)|*.doc;
FilterIndex Chọn số thứ tự cho bộ lọc (bộ lọc sẽ hiển thị trong mục
Files Of Types)
InitialDirectory Đường dẫn mặc định khi hộp thoại SaveFileDialog mở
raRestoreDirectory Nhận một trong hai giá trị True hay False
- True: Mở lại thư mục vừa mở ra lần trước, với điều
kiện thuộc tính InitialDirectory không đặt gì
- False: Không mở lại thư mục vừa mở lần trước Title Đặt tiêu đề (xuất hiện trên Titlebar) cho hộp thoại
SaveFileDialogShowHelp Cho phép xuất hiện Button Help (?) hay không?
OverwritePrompt Xuất hiện cảnh báo nếu bạn ghi đè vào một tập tin đã
tồn tại
8 Minh họa sử dụng SaveFileDialog
Giả sử chúng ta có một form có tên: frmSaveFileDialog, trên form có một điều khiển Textbox có tên Textbox1và một điều khiển SaveFileDialog có tên
saveFileDialog1 Chúng ta sử dụng hộp thoại SaveFileDialog để ghi nội dung
Textbox vào một tệp Text qua sự kiện Click của một Button có tên btSave
Trang 40private void btSave_Click(object sender, EventArgs e)
{
//Đặt một số thuộc tính bằng Code
saveFileDialog1.AddExtension = true;//Cho phép thêm vào tên mở rộng
saveFileDialog1.OverwritePrompt = true;//Xuất hiện cảnh báo nếu tập tin đã tồn tại saveFileDialog1.DefaultExt = "txt";//Chạy nếu: saveFileDialog1.AddExtension = true saveFileDialog1.CheckPathExists = true;//Kiểm tra đường dẫn có hợp lệ hay không saveFileDialog1.FileName = "";
saveFileDialog1.Filter = "Text File (*.txt)|*.txt";
saveFileDialog1.FilterIndex = 0;
//saveFileDialog1.InitialDirectory = "C:\\";//Chọn đường dẫn khi hộp thoại mở ra
saveFileDialog1.RestoreDirectory = true;//ĐK không đặt saveFileDialog1.InitialDirectory saveFileDialog1.ShowHelp = true;
saveFileDialog1.Title = "Cong nghe NET";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//Lấy nội dung cần ghi
string strNoiDung=textBox1.Text;
//Lấy ra tên file cần ghi
string strFileSave = saveFileDialog1.FileName;