1. Chức năng
Form (hay còn gọi điều khiển Form) dùng để chứa các điều khiển khác (Buttons, Label…)
2. Một số thuộc tính thường dùng
Điều khiển Form có một số thuộc tính như sau:
Tên Ỹ nghĩa
Name Tên của Form. Trong một Project tên của các Form phải khác nhau.
AcceptButton 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ại
AutoSizeMode 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
BackColor Chọn màu nền cho Form
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 Form cũng mất đi)
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
I. FORM
***
1. Chức năng
Form (hay còn gọi điều khiển Form) dùng để chứa các điều khiển khác
(Buttons, Label…)
2. Một số thuộc tính thường dùng
Điều khiển Form có một số thuộc tính như sau:
Tên
Name
AcceptButton
Autosize
AutoSizeMode
BackColor
BackGroundImage
CancelButton
ControlBox
Font
ForeColor
FormBorderStyle
Ỹ nghĩa
Tên của Form. Trong một Project tên của các Form phải
khác nhau.
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 đó.
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ại
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
Chọn màu nền cho Form
Chọn ảnh làm nền cho Form
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 ).
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 Form
cũng mất đi)
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ống
như thuộc tính Font của Form)
Tương tự như thuộc tính Font nhưng áp dụng đối với
màu chữ
Chọn Style cho Form (Có 7 lựa chọn khác nhau).
EBOOKBKMT.COM
-1-
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
HelpButton
Icon
KeyPreview
MaximizeBox
MaximizeBox
Opacity
ShowIcon
ShowInTaskbar
StartPosition
Text
WindowState
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
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 ra
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ệu
lực.
- False: Ngược lại
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ại
Tương tự như thuộc tính MaximizeBox
Độ trong suốt của Form
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 Form
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ại
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)
Giá trị Text của Form
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
Tên
AutoSizeChanged
ControlAdded
Ỹ nghĩa
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.
Xảy ra khi thuộc tính BackColor của Form thay đổi
Xảy ra khi người dùng Click chuột vào vùng làm việc
thuộc Form
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
BackColorChanged
Click
EBOOKBKMT.COM
-2-
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
FontChanged
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
KeyPress
Xảy ra khi Form đã đóng (Nhấn vào nút X màu đỏ trên
Titlebar)
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)
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)
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)
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)
Xảy ra khi người dùng nhấn chuột
FormClosing
KeyDown
MouseDoubleClick
MouseDown
MouseHover
MouseLeave
MouseMove
MouseUp
Move
StyleChanged
TextChanged
Xảy ra khi người dùng di chuyển vào các vùng làm việc
Form
Xảy ra khi di chuyển chuột ra khỏi vùng làm việc của
Form
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 di
chuyển chuột trên điều khiển này thì không xảy ra sự
kiện MouseMove của Form).
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)
Xảy ra khi di chuyển Form (có sự thay đổi vị trí của
Form)
Xảy ra khi thuộc tính FormBorderStyle của Form thay
đổi
Xảy ra khi thuộc tính Text của Form thay đổi.
EBOOKBKMT.COM
-3-
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
4. 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
else
e.Cancel = true;//Không đóng Form nữa
}
4.3. Sự kiện KeyPress
//Sự kiện KeyPress
private void frmForm_KeyPress(object sender, KeyPressEventArgs e)
{
//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
-4-
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
4.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");
}
4.5. Sự kiện MouseClick
//Sự kiện MouseClick
private void frmForm_MouseClick(object sender, MouseEventArgs e)
{
//Nếu bạn không muốn biết người dùng nhấn chuột TRÁI hay PH ẢI hay GI ỮA thì khi nh ấn b ất kì
//Chuột nào cũng xảy ra sự kiện MouseClick của Form
//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");
else if (e.Button==MouseButtons.Middle)
MessageBox.Show("Sự kiện MouseClick xảy ra khi bạn Click chuột GIỮA");
else if (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ự
-5-
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
TẬ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
-6-
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
4.1. Các phương thức/Thuộc tính
private void btCollection_Click(object sender, EventArgs e)
{
//Mới đầu xóa hết các phần tử sử dụng phương thức Clear()
comboBox1.Items.Clear();
//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
comboBox1.Items.Add("Phần tử thứ 1");
//Add một mảng phần tử
string[] Mang = { "Phần tử thứ 2", "Phần tử thứ 3", "Phàn tử thứ 4" };
comboBox1.Items.AddRange(Mang);
//Insert một phần tử vào -> Phần tử chèn vào vị trí do ta chỉ đ ịnh ch ứ không ph ải vào cu ối cùng
//Trong ví dụ này: Phần tử được chèn vào vị trí thứ 2
comboBox1.Items.Insert(2, "Phần thứ được chèn");
//Lấy ra số phần tử của Combobox
int x = comboBox1.Items.Count;
MessageBox.Show("Số phần tử của Combobox là: "+x.ToString());
//Lấy giá trị là một phàn tử nào đó
string str = comboBox1.Items[2].ToString(); //Phần tử số 3???
MessageBox.Show("Giá trị của phần tử số 3: " + str.ToString());
}
4.2. Duyệt các phần tử trong tập hợp
//Giả sử chúng ta duyệt tất cả các nút Button trên một Form (T ất nhiên: trên Form ph ải có vài Button)
-7-
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
private void btForEach_Click(object sender, EventArgs e)
{
foreach (Control bt in this.Controls)
{
if (bt is Button)
MessageBox.Show(bt.Text);
}
}
-8-
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
II. COMBOBOX
***
1. Chức năng
Lưu trữ các mục dữ liệu (phần tử) dưới dạng danh sách
2. Một số thuộc tính thường dùng
Tên
Ý nghĩa
Anchor
Xác định vị trí “neo đậu” của điều khiển so với Form
AutoCompleteCustomSource Xác định các phần tử cho tính năng AutoComplete của
Combobox (Tức là tính năng AutoComplete chỉ áp dụng
trên các phần tử này - Nếu thuộc tính
AutoCompleteSource là CustomSource)
AutoCompleteMode
Kiểu tự động tìm kiếm các phần tử trong Combobox. Có
một số lựa chọn sau
- 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ển
thị ra bên dưới
- SuggestAppend=Suggest+Append
AutoCompleteSource
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ủa
IE
- ListItems: Các phần tử của Combobox được thêm
vào thông qua thuộc tính Items
- CustomSource: Giá trị các phần tử trong thuộc tính
AutoCompleteCustomSource
BackColor
Cursor
Chọn màu nền cho Combobox
Hình dáng của chuột khi di chuyển vào Combobox
DataSource
Dock
Enabled
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…)
Vị trí bám dính của Combobox
Cho phép Combobox có hiệu lực hay không?
Font
ForeColor
Chọn Font cho Combobox
Chọn màu chữ của các phần tử (Item) của Combobox
Items
Quản lý các phần tử trong Combobox (thêm các phần
tử vào Combobox, xóa đi…)
Giá trị ứng với phần tử đang được chọn
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ần
Get/Set chỉ số của phần tử đang chọn
Text
Sorted
SelectedIndex
-9-
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
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……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
Tên
Ý nghĩa
Add
Thêm một phần tử vào Combobox
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
Tên
SelectedIndexChanged
Ý nghĩa
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
- 10 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
5.1. Minh họa thuộc tinh Sorted
private void btCombobox_Click(object sender, EventArgs e)
{
//Mới đầu xóa hết các phần tử trong Combobox (nếu có)
comboBox1.Items.Clear();
//Add một số phần tử vào: Dùng phương thức Add hay AddRange
comboBox1.Items.Add("5");
string[] MangString = { "1","3","8","4","7" };
comboBox1.Items.AddRange(MangString); //Số thứ tự của các ptử là: 5,1,3,8,4,7
//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
- 11 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
string[] 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Ự
- 12 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
III. WEB BROWSER
***
1. Chức năng
Duyệt các trang Web, hiển thị các File với các định dạng khác nhau.
2. Một số thuộc tính thường dùng
Tên
ScrollBarsEnabled
Url
Ý Nghĩa
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ại
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
Tên
Navigate
Chức năng
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
- 13 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
4.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)
{
Uri u = new Uri(@"http://mail.google.com/");
webBrowser1.Url = u;
//Viết gộp lại như thế này: webBrowser1.Url = new Uri(@"http://mail.google.com/");
//-> khi Click vào btWeb thì WebBrowser hiển thị WebSite http://mail.google.com/
//Tất nhiên máy bạn phải kết nối với Internet
}
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
//webBrowser1.Navigate(@"C:\NET.ppt");//(2)
//Hiển thị Ảnh
//webBrowser1.Navigate(@"C:\viethqtk1.jpg");//(3)
//................................
}
- 14 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
4.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)
{
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://") &&
!address.StartsWith("https://"))
{
address = "http://" + address;
}
try
{
webBrowser1.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
return;
}
}
→ Bài Tập: Ứng dụng Combobox và WebBrowser viết một trình duyệt Web đơn giản
- 15 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
IV. TEXTBOX
***
1. Chức năng
Điều khiển Textbox cho phép bạn nhập và hiển thị dữ liệu.
2. Một số thuộc tính thường dùng
Tên
AcceptsTab
Anchor
AutoCompleteCustomSource
AutoCompleteMode
AutoComplete Source
BackColor
BorderStyle
ContextMenuStrip
Dock
Font
HideSelection
MaxLenght
Multiline
PasswordChar
ReadOnly
ScrollBars
TabIndex
Visible
Ý nghĩa
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ện
thuộc tính Multiline=True).
- False: Khi nhấn Tab thì Focus di chuyển qua
lạ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
Vị trí neo đậu của Textbox trên Form
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 Combobox
Đặt mầu nền cho Textbox
Chọn kiểu đường viền cho Textbox
Chọn Menu ngữ cảnh khi nhấn chuột phải vào
Textbox
Vị trí bám dính và điền đầy của Textbox với Form
Chọn kiểu Font chữ cho Textbox
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ại
Số lượng kí tự lớn nhất cho phép nhập vào
Textbox
Nhận một trong hai giá trị True hay False
- True: Cho phép nhập và hiển thị giá trị của
Textbox 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ủa
Textbox trên một dòng
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:
*, #...)
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ấy
thanh cuộn)
Cho phép Textbox hiển thị hay không?
- 16 -
Chuyên đề 02: Công nghệ .NET
Giáo viên: Hoàng Quốc Việt
CanUndo
Trả lại hai giá trị True/False.
- True: có thể Undo lại được (như Word)
- False: Ngược lại
Cá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
Tên
AppendText
Copy
Cut
Paste
Focus
Clear
Select
SelectAll
Undo
Ý nghĩa
Nối một chuỗi (string) vào giá trị Text hiện có của
Textbox
Xử lý phần nội dung bôi đen (như Word)
Chuyển Focus (con trỏ) vào TextBox
Xóa toàn bộ Textbox
Lấy ra một chuỗi trong Textbox (xem Code)
Lấy tất cả giá trị của Textbox
Xử lý Undo như Word
4. Một số sự kiện thường dùng
Tên
KeyPress
MouseClick
TextChanged
Ý nghĩa
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…)
Xảy ra khi người dùng Click chuột trên điều khiển
Textbox
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.
- 17 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
5.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);
//Gán giá trị Text
textBox1.Text = "Chào các bạn";
//Sau khi gán
MessageBox.Show("Giá trị textbox sau 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;
- 18 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
i = textBox1.Text.LastIndexOf(str);
if (i >= 0)
{
textBox1.SelectionStart = i;
textBox1.SelectionLength = str.Length;
}
}
5.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
//Ví dụ:
txtNoiDung.Select(10, 5);
//<-> 2 câu lệnh này
//textBox1.SelectionStart = 10;
//textBox1.SelectionStart = 5;
}
- 19 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
5.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)
{
if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
e.Handled = true;
//Char.IsDigit(e.KeyChar) -->
//kiểm tra xem phím vừa nhập vào textbox có phải là ký tự số hay không, hàm này tr ả v ề ki ểu bool
//Char.IsContro(e.KeyChar) -->
- 20 -
- Xem thêm -