Mục tiêu bài họcCác nhóm điều khiển trên form Các điều khiển thường dùng Các điều khiển chứa Các điều khiển menu Các điều khiển dữ liệu Các thành phần Các điều khiển hỗ trợ in Các điều k
Trang 1Bài 3:
LẬP TRÌNH GIAO DIỆN ĐIỀU KHIỂN & XỬ LÝ SỰ KIỆN
Trang 2Tự sinh mã khai báo
Lập trình giao diện - Điều khiển & xử lý sự kiện 2
Trang 3Mục tiêu bài học
Các nhóm điều khiển trên form
Các điều khiển thường dùng
Các điều khiển chứa
Các điều khiển menu
Các điều khiển dữ liệu
Các thành phần
Các điều khiển hỗ trợ in
Các điều khiển hộp thoại
Sự kiện và xử lý sự kiện trong C#
Các nhóm điều khiển trên form
Các điều khiển thường dùng
Các điều khiển chứa
Các điều khiển menu
Các điều khiển dữ liệu
Các thành phần
Các điều khiển hỗ trợ in
Các điều khiển hộp thoại
Sự kiện và xử lý sự kiện trong C#
Lập trình giao diện - Điều khiển & xử lý sự kiện 3
Trang 5Visual Studio cung cấp rất nhiều điều khiển
Các điều khiển thường dùng
Các điều khiển chứa
Các điều khiển menu
Các điều khiển dữ liệu
Các thành phần
Các điều khiển hỗ trợ in
Các điều khiển hộp thoại
Điều khiển trong Visual Studio
Visual Studio cung cấp rất nhiều điều khiển
Các điều khiển thường dùng
Các điều khiển chứa
Các điều khiển menu
Các điều khiển dữ liệu
Các thành phần
Các điều khiển hỗ trợ in
Các điều khiển hộp thoại
Trang 7COMMON CONTROLS
Trang 8Các điều khiển đã học
Làm quen với một số điều khiển
Nhóm điều khiển thường dùng
Trang 9CheckedListBox thừa kế từ ListBox nên sẽ có các thuộctính và phương thức của ListBox
CheckedListBox là một ListBox chứa các phần tử là
CheckBox
CheckedListBox
Trang 10Thuộc tính
CheckedIndices Trả về một collection các chỉ số được đánh dấu trong
CheckedListBox CheckedItems Trả về một collection các phần tử được đánh dấu trong
CheckedListBox CheckOnClick Nếu bằng true thì các phần tử được đánh dấu khi nhận một
nhấn đơn còn false thì phần tử sẽ được đánh dấu khi nhận một click đúp chuột
Các thuộc tính của CheckedListBox
Nếu bằng true thì các phần tử được đánh dấu khi nhận một nhấn đơn còn false thì phần tử sẽ được đánh dấu khi nhận một click đúp chuột
Items Trả về các một collection gồm các phần tử của CheckedListBox SelectedItem Lấy hoặc thiết lập phần tử vừa được chọn trong
CheckedListBox SelectedItems Lấy hoặc thiết lập các phần tử được chọn trong
CheckedListBox
Tham khảo thêm các thuộc tính và phương thức của CheckedListBox trên
http://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.aspx
Trang 11private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
Trang 12ListView là điều khiển dùng để hiển thị một danh sách các phần
tử với các biểu tượng
Windows Explorer là một ví dụ của ListView
ListView cung cấp nhiều cách hiển thị khác nhau (LargeIcon,
Details, SmallIcon, List, Title)
Xem Video hướng dẫn tạo Listview
ListView
ListView là điều khiển dùng để hiển thị một danh sách các phần
tử với các biểu tượng
Windows Explorer là một ví dụ của ListView
ListView cung cấp nhiều cách hiển thị khác nhau (LargeIcon,
Details, SmallIcon, List, Title)
Xem Video hướng dẫn tạo Listview
Trang 133 Chọn thuộc tính FullRowSelect =true để chọn cả 1 dòng của Listview
4 Chọn thuộc tính View có giá trị là Details
Trang 14Thêm /xóa một hàng vào Listview
1 Thêm phần tử vào dòng đầu tiên của Listview
listview1.Items.Add("Ducati"); // thêm cột thứ nhất listview1.Items[0].SubItems.Add("2005");
2 Thêm phần tử vào hàng thứ i của Listview
Trang 15Lấy giá trị của dòng Listview được chọn
1 Lấy giá trị cột thứ i của dòng đã chọn (cột đầu tiên có giá trị là 0)
if (listview1.SelectedItems.Count > 0){
listview1.SelectedItems[0].SubItems[0].Text }
Trang 16SelectedNode ExpandAll AfterCheck
ShowRootLines GetNodeAt AfterCollapse
ImageIndex GetNodeCount BeforeCheck
ShowPlusMinus CollapseAll BeforeCollapse
ShowPlusMinus CollapseAll BeforeCollapse
AfterSelect
AfterExpand
BeforeSelect
BeforeExpand
Trang 17Thêm Node vào Treeview
1 Click phải chuột vào Treeview chọn mục Properties
2 Chọn mục Node và chọn collection
3 Nhấn nút Add root để thêm node gốc nhấn nút add child để thêm node con
4 Xem Video hướng dẫn thiết kế Treeview
Trang 18Truy cập đến các node / lấy giá trị node được chọn
1 Giả sử có cây như hình vẽ
Trang 19Sử dụng để người dùng biết quá trình xử lý của máy tính
ProgressBar
Trang 20Các thuộc tính và phương thức của ProgressBar
Value Thiết lập vị trí hiện tại của ProgressBar
Step Thiết lập khoảng giá trị mà phương thức PerformStep sẽ tăng Maximum Thiết lập giá trị cao nhất
Minimum Thiết lập giá trị nhỏ nhất
Trang 21Demo quá trình tính tổng từ 1 đến 10
Demo ProgressBar
Trang 23Là điều khiển dùng để hiển thị các trang web với địa chỉđược chỉ ra
WebBrowser
Trang 25Demo WebBrowser
Trang 26private void btnOK_Click(object sender, EventArgs e) {
string url = txtUrl.Text;
webBrowser.Navigate(new Uri(url));
}
Trang 27Tự tìm hiểu các điều khiển còn lại của nhóm Common
Controls, xây dựng một demo nhỏ cho mỗi điều khiển
BÀI TẬP VỀ NHÀ
Sử dụng từ khóa: Tên điều khiển Example C# để tìm kiếm
Trang 28CONTAINERS
Trang 29Ví dụ về điều khiển Tab (Options của Firefox)
Trang 30MENUS & TOOLBARS
Trang 31Menus & Toolbars
ContextMenuStrip
ToolStrip StatusStrip
Trang 32Menu trạng thái (Status Strip)
StatusStrip (Menu trạng thái) Nằm cuối form cho biết
trạng thái hiện tại của ứng dụng
Trang 33Visual Studio cung cấp menu
ngữ cảnh cho các điều khiển
Menu xuất hiện khi người dùng
nhấn phải chuột vào điều
khiển
Muốn sử dụng menu ngữ cảnh
cho một điều khiển cần
1 Thêm menu ngữ cảnh vào
form
2 Gán menu ngữ cảnh đó cho
thuộc tính ContextMenuStrip
Menu ngữ cảnh (ContextMenuStrip)
Visual Studio cung cấp menu
ngữ cảnh cho các điều khiển
Menu xuất hiện khi người dùng
nhấn phải chuột vào điều
khiển
Muốn sử dụng menu ngữ cảnh
cho một điều khiển cần
1 Thêm menu ngữ cảnh vào
Trang 34CÁC ĐIỀU KHIỂN KHÁC
Trang 35Các điều khiển khác
Trang 36Cung cấp cơ chế để thực thi hành động sau mỗi khoảngthời gian
Thuộc tính/Phương thức
Sự kiện
Timer
Thuộc tính/Phương thức Mô tả
Interval Chỉ ra khoảng thời gian sự kiện Tick xẩy
Chỉ ra khoảng thời gian sự kiện Tick xẩy ra
Thuộc tính/Phương thức Mô tả
trong thuộc tính Interval
Trang 37Demo ProgressBar với Timer
private void Form1_Load(object sender, EventArgs e)
timer1.Stop();
} }
private void Form1_Load(object sender, EventArgs e)
timer1.Stop();
} }
Trang 38Chọn ra 3 điều khiển bất kỳ chưa được giới thiệu để tìmhiểu, mỗi điều khiển cho một demo nhỏ
BÀI TẬP VỀ NHÀ
Sử dụng từ khóa: Tên điều khiển Example C# để tìm kiếm
Trang 39THIẾT LẬP THUỘC TÍNH
CHO ĐIỀU KHIỂN
THIẾT LẬP THUỘC TÍNH
CHO ĐIỀU KHIỂN
Trang 40Có hai cách thiết lập thuộc tính cho điều khiển
Thiết lập thuộc tính cho các điều khiển trên panel
Thiết lập thuộc tính cho điều khiển
Có hai cách thiết lập thuộc tính cho điều khiển
Thiết lập thuộc tính cho các điều khiển trên panel
Trang 41Demo thiết lập thuộc tính bằng IDE
// Mã được sinh bởi IDE
this.lblLabel.ForeColor = System.Drawing SystemColors.HotTrack; this.lblLabel.Location = new System.Drawing Point(27, 41);
this.lblLabel.Name = "lblLabel";
this.lblLabel.Size = new System.Drawing Size(69, 24);
this.lblLabel.TabIndex = 0;
this.lblLabel.Text = "Hello!!!";
Trang 42Demo thiết lập thuộc tính cho điều khiển bằng viết mã
private void Form1_Load(object sender, EventArgs e)
{
lblHow.Text = "How are you?";
this.lblHow.ForeColor = System.Drawing SystemColors.Highlight; }
private void Form1_Load(object sender, EventArgs e)
{
lblHow.Text = "How are you?";
this.lblHow.ForeColor = System.Drawing SystemColors.Highlight; }
Trang 43VIẾT MÃ THÊM ĐIỀU
KHIỂN VÀO FORM
VIẾT MÃ THÊM ĐIỀU
KHIỂN VÀO FORM
Trang 44Có thể thêm điều khiển vào form bằng cách sử dụng
công cụ hoặc viết mã; trong lúc thiết kế hoặc trong quátrình thực thi ứng dụng
Các bước để thêm điều khiển vào form
B1 Tạo thực thể của điều khiển
B2 Thêm điều khiển vào form
B3 Thiết lập các thuộc tính cho điều khiển
Viết mã thêm điều khiển vào form
Có thể thêm điều khiển vào form bằng cách sử dụng
công cụ hoặc viết mã; trong lúc thiết kế hoặc trong quátrình thực thi ứng dụng
Các bước để thêm điều khiển vào form
B1 Tạo thực thể của điều khiển
B2 Thêm điều khiển vào form
B3 Thiết lập các thuộc tính cho điều khiển
private void Form1_Load(object sender, EventArgs e) {
CheckedListBox clb = new CheckedListBox();
3
Trang 45SỰ KIỆN
CỦA ĐIỀU KHIỂN
SỰ KIỆN
CỦA ĐIỀU KHIỂN
Trang 46Visual Studio cung cấp rất nhiều sự kiện cho mỗi điều
khiển
Điều khiển button được cung cấp 60 sự kiện
Mỗi điều khiển được hỗ trợ một tập các sự kiện khác
nhau tùy vào đặc thù của điều khiển
Sự kiện được chia làm 3 nhóm chính
Sự kiện đối với chuột
MouseClick, MouseDown, MouseEnter…
Sự kiện đối với bàn phím
KeyUp, KeyDown
Sự kiện khác
TextChanged, FontChanged…
Sự kiện điều khiển
Visual Studio cung cấp rất nhiều sự kiện cho mỗi điều
khiển
Điều khiển button được cung cấp 60 sự kiện
Mỗi điều khiển được hỗ trợ một tập các sự kiện khác
nhau tùy vào đặc thù của điều khiển
Sự kiện được chia làm 3 nhóm chính
Sự kiện đối với chuột
MouseClick, MouseDown, MouseEnter…
Sự kiện đối với bàn phím
Trang 47Có 3 sự kiện chính của bàn phím
KeyDown
KeyPress
KeyUp
Khi một phím ký tự được nhấn thì các sự kiện xẩy ra
theo trình tự KeyDown, KeyPress và KeyUp
Khi một phím không phải ký tự được nhấn, chỉ có sự
kiện KeyDown và KeyUp
Sự kiện này sẽ được áp dụng cho điều khiển nào đang
Khi một phím ký tự được nhấn thì các sự kiện xẩy ra
theo trình tự KeyDown, KeyPress và KeyUp
Khi một phím không phải ký tự được nhấn, chỉ có sự
kiện KeyDown và KeyUp
Sự kiện này sẽ được áp dụng cho điều khiển nào đang
nhận được focus
Trang 48Demo Sự kiện đối với bàn phím
private void button1_KeyPress(object sender, KeyPressEventArgs e) {
Trang 49Demo Sự kiện đối với bàn phím
Trang 50Để gán một phương thức xử lý sự kiện cho một điều
khiển, cần nối phương thức xử lý sự kiện cho sự kiện
Mỗi phương thức xử lý sự kiện có thể nối cho nhiều sự
}
Để gán một phương thức xử lý sự kiện cho một điều
khiển, cần nối phương thức xử lý sự kiện cho sự kiện
Mỗi phương thức xử lý sự kiện có thể nối cho nhiều sự
} this.button1.Click += new System.EventHandler(this.button1_Click);
Mã này thuộc file Designer.cs, IDE tự sinh mã
Trang 51Demo nối một phương thức
xử lý sự kiện với nhiều sự kiện
//Viết mã cho xử lý sự kiện
private void xoaTextBoxTong(object sender, EventArgs e){
txtTong.Text = "";
}
2 1
Gán phương thức xử lý sự kiện
cho các TextBox Số kiện hàng
và Số sách trong mỗi kiện
this.txtSoKienHang.TextChanged += new
System EventHandler( this.xoaTextBoxTong);
this.txtSoSach.TextChanged += new
System EventHandler( this.xoaTextBoxTong);
Mã được IDE tự sinh
2
3
Trang 52Demo nối một phương thức
xử lý sự kiện với nhiều sự kiện
Nhập vào Số kiện hàng và
Số sách trong mỗi kiện
Nhập vào Số kiện hàng thì giá trị trong TextBox Tổng
số sách: được xóa
Trang 53Tìm hiểu các sự kiện hỗ trợ cho các điều khiển được họcngày hôm nay
BÀI TẬP VỀ NHÀ
Trang 54.NET hỗ trợ rất nhiều điều khiển để thực thi hầu như cácthao tác mong muốn, các điều khiển được gom vào cácnhóm khác nhau tùy vào mục đích sử dụng
Các điều khiển CheckListBox, ListView, ProgressBar,
WebBrowser thuộc nhóm Common
Các điều khiển ConTextMenu, StatusStrip và
ToolStripContainer thuộc nhóm Menu&Toolbar
Tổng kết bài học
.NET hỗ trợ rất nhiều điều khiển để thực thi hầu như cácthao tác mong muốn, các điều khiển được gom vào cácnhóm khác nhau tùy vào mục đích sử dụng
Các điều khiển CheckListBox, ListView, ProgressBar,
WebBrowser thuộc nhóm Common
Các điều khiển ConTextMenu, StatusStrip và
ToolStripContainer thuộc nhóm Menu&Toolbar
Lập trình giao diện - Điều khiển & xử lý sự kiện 54
Trang 55Visual Studio cung cấp rất nhiều sự kiện cho mỗi điều
khiển Mỗi điều khiển được hỗ trợ một tập các sự kiện
khác nhau tùy vào đặc thù của điều khiển
Sự kiện được chia làm 3 nhóm chính: sự kiện đối với
chuột, sự kiện đối với bàn phím và sự kiện khác
Để gán một phương thức xử lý sự kiện cho một điều
khiển, cần nối phương thức xử lý sự kiện cho sự kiện
Mỗi phương thức sự kiện có thể nối cho nhiều sự kiện
Tổng kết bài học
Visual Studio cung cấp rất nhiều sự kiện cho mỗi điều
khiển Mỗi điều khiển được hỗ trợ một tập các sự kiện
khác nhau tùy vào đặc thù của điều khiển
Sự kiện được chia làm 3 nhóm chính: sự kiện đối với
chuột, sự kiện đối với bàn phím và sự kiện khác
Để gán một phương thức xử lý sự kiện cho một điều
khiển, cần nối phương thức xử lý sự kiện cho sự kiện
Mỗi phương thức sự kiện có thể nối cho nhiều sự kiện
Lập trình giao diện - Điều khiển & xử lý sự kiện 55