bài 3: lập trình giao diện điều khiển & xử lý sự kiện - lập trình winform -...

55
Bài 3: LẬP TRÌNH GIAO DIỆN ĐIỀU KHIỂN & XỬ LÝ SỰ KIỆN

Upload: hoc-lap-trinh-web

Post on 17-Jun-2015

6.756 views

Category:

Documents


11 download

DESCRIPTION

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#

TRANSCRIPT

Page 1: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Bài 3:LẬP TRÌNH GIAO DIỆN

ĐIỀU KHIỂN & XỬ LÝ SỰ KIỆN

Page 2: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Xây dựng lớp, cấu trúcTạo và sử dụng đối tượngXây dựng lớp kế thừaKhái hình và sử dụng đa hìnhSử dụng các lớp và đối tượng dựng sẵnCollectionTự sinh mã khai báo

Hệ thống bài cũ

Xây dựng lớp, cấu trúcTạo và sử dụng đối tượngXây dựng lớp kế thừaKhái hình và sử dụng đa hìnhSử dụng các lớp và đối tượng dựng sẵnCollectionTự sinh mã khai báo

Lập trình giao diện - Điều khiển & xử lý sự kiện 2

Page 3: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Mục tiêu bài học

Các nhóm điều khiển trên formCác điều khiển thường dùngCác điều khiển chứaCác điều khiển menuCác điều khiển dữ liệuCác thành phầnCác điều khiển hỗ trợ inCá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 formCác điều khiển thường dùngCác điều khiển chứaCác điều khiển menuCác điều khiển dữ liệuCác thành phầnCác điều khiển hỗ trợ inCá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

Page 4: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

ĐIỀU KHIỂNTRÊN FORM

Lập trình giao diện - Điều khiển & xử lý sự kiện 4

ĐIỀU KHIỂNTRÊN FORM

Page 5: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Visual Studio cung cấp rất nhiều điều khiểnCác điều khiển thường dùngCác điều khiển chứaCác điều khiển menuCác điều khiển dữ liệuCác thành phầnCác điều khiển hỗ trợ inCá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ểnCác điều khiển thường dùngCác điều khiển chứaCác điều khiển menuCác điều khiển dữ liệuCác thành phầnCác điều khiển hỗ trợ inCác điều khiển hộp thoại

Lập trình giao diện - Điều khiển & xử lý sự kiện 5

Page 6: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

CÂY

PHÂ

N C

ẤP

ĐIỀ

U K

HIỂ

N

Lập trình giao diện - Điều khiển & xử lý sự kiện 6

CÂY

PHÂ

N C

ẤP

ĐIỀ

U K

HIỂ

N

Page 7: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

COMMON CONTROLS

Lập trình giao diện - Điều khiển & xử lý sự kiện 7

Page 8: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Các điều khiển đã họcLàm quen với một số điều khiển

Nhóm điều khiển thường dùng

Lập trình giao diện - Điều khiển & xử lý sự kiện 8

Page 9: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

CheckedListBox thừa kế từ ListBox nên sẽ có các thuộctính và phương thức của ListBoxCheckedListBox là một ListBox chứa các phần tử làCheckBox

CheckedListBox

Lập trình giao diện - Điều khiển & xử lý sự kiện 9

Page 10: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Thuộc tính

CheckedIndices Trả về một collection các chỉ số được đánh dấu trongCheckedListBox

CheckedItems Trả về một collection các phần tử được đánh dấu trongCheckedListBox

CheckOnClick Nếu bằng true thì các phần tử được đánh dấu khi nhận mộtnhấn đơn còn false thì phần tử sẽ được đánh dấu khi nhậnmộ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ộtnhấn đơn còn false thì phần tử sẽ được đánh dấu khi nhậnmộ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 trongCheckedListBox

SelectedItems Lấy hoặc thiết lập các phần tử được chọn trongCheckedListBox

Lập trình giao diện - Điều khiển & xử lý sự kiện 10

Tham khảo thêm các thuộc tính và phương thức của CheckedListBox trênhttp://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.aspx

Page 11: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo CheckedListBox

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e){

if (e.NewValue == CheckState.Checked){

listBox1.Items.Add(checkedListBox1.SelectedItem.ToString());}else{

listBox1.Items.Remove(checkedListBox1.SelectedItem.ToString());}

}

Lập trình giao diện - Điều khiển & xử lý sự kiện 11

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e){

if (e.NewValue == CheckState.Checked){

listBox1.Items.Add(checkedListBox1.SelectedItem.ToString());}else{

listBox1.Items.Remove(checkedListBox1.SelectedItem.ToString());}

}

Page 12: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

ListView là điều khiển dùng để hiển thị một danh sách các phầntử với các biểu tượngWindows 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ầntử với các biểu tượngWindows 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

Lập trình giao diện - Điều khiển & xử lý sự kiện 12

Page 13: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo ListView

1. Thêm một cột vào Listview Click vào control Listview và chọn properties chọn mụcColumn

2. Nhấn vào nút Add chọn thuộc tính Name và Text để đặttên và nhãn cho cột.

Lập trình giao diện - Điều khiển & xử lý sự kiện 13

3. Chọn thuộc tính FullRowSelect =true để chọn cả 1 dòng của Listview4. Chọn thuộc tính View có giá trị là Details

Page 14: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Thêm /xóa một hàng vào Listview1. 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ấtlistview1.Items[0].SubItems.Add("2005");listview1.Items[0].SubItems.Add("125");listview1.Items[0].SubItems.Add("40000");

2. Thêm phần tử vào hàng thứ i của Listviewlistview1.Items.Add("Hyundai");listview1.Items[i].SubItems.Add("2007");listview1.Items[i].SubItems.Add("400");listview1.Items[i].SubItems.Add("850000");

Lập trình giao diện - Điều khiển & xử lý sự kiện 14

2. Thêm phần tử vào hàng thứ i của Listviewlistview1.Items.Add("Hyundai");listview1.Items[i].SubItems.Add("2007");listview1.Items[i].SubItems.Add("400");listview1.Items[i].SubItems.Add("850000");

3. Xóa tất cả các phần tử của Listviewlistview1.Items.Clear(); .

Page 15: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Lấy giá trị của dòng Listview được chọn1. 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}

Lập trình giao diện - Điều khiển & xử lý sự kiện 15

Page 16: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

TreeView

Thuộc tính Phương thức Sự kiệnSelectedNode ExpandAll AfterCheck

ShowRootLines GetNodeAt AfterCollapse

ImageIndex GetNodeCount BeforeCheck

ShowPlusMinus CollapseAll BeforeCollapseShowPlusMinus CollapseAll BeforeCollapse

AfterSelectAfterExpand

BeforeSelect

BeforeExpand

Page 17: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Thê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

Page 18: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Truy cập đến các node / lấy giá trị node được chọn

1. Giả sử có cây như hình vẽ

3 truy cập phần tử YZFR1 bằng chỉ số:tw.Nodes[0].Nodes[0].Nodes[1].IsSelected

Truy cập phần tử Accord bằng chỉ số:

tw.Nodes[0].Nodes[1].Nodes[0].IsSelected

2. Thuộc tính Node.IsSelected cho biết Node được chọn

3 truy cập phần tử YZFR1 bằng chỉ số:tw.Nodes[0].Nodes[0].Nodes[1].IsSelected

Truy cập phần tử Accord bằng chỉ số:

tw.Nodes[0].Nodes[1].Nodes[0].IsSelected

4. Lấy giá trị của Node được chọn dùng :tw.SelectedNode.Text

Page 19: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Sử dụng để người dùng biết quá trình xử lý của máy tính

ProgressBar

Lập trình giao diện - Điều khiển & xử lý sự kiện 19

Page 20: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Các thuộc tính vàphương thức của ProgressBar

Thuộc tính Mô tả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

Lập trình giao diện - Điều khiển & xử lý sự kiện 20

Phương thức Mô tảPerformStep Tăng vị trí hiện tại của ProgressBar theo giá trị trong thuộc tính

Step

Tham khảo thêm các thuộc tính và phương thức của CheckedListBox trênhttp://msdn.microsoft.com/en-us/library/system.windows.forms.progressbar.aspx

Page 21: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo quá trình tính tổng từ 1 đến 10

Demo ProgressBar

Lập trình giao diện - Điều khiển & xử lý sự kiện 21

Page 22: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo ProgressBar

//Đề mô quá trình tính tổng từ 1 đến 10private void btnTinh_Click(object sender, EventArgs e){

progressBar.Value = 0;progressBar.Maximum = 100;progressBar.Minimum = 0;progressBar.Step = 10;

int sum = 0;for (int i = 0; i < 10; i++){

sum += i;Thread.Sleep(1000);progressBar.PerformStep();

}}

Lập trình giao diện - Điều khiển & xử lý sự kiện 22

//Đề mô quá trình tính tổng từ 1 đến 10private void btnTinh_Click(object sender, EventArgs e){

progressBar.Value = 0;progressBar.Maximum = 100;progressBar.Minimum = 0;progressBar.Step = 10;

int sum = 0;for (int i = 0; i < 10; i++){

sum += i;Thread.Sleep(1000);progressBar.PerformStep();

}}

Page 23: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Là điều khiển dùng để hiển thị các trang web với địa chỉđược chỉ ra

WebBrowser

Lập trình giao diện - Điều khiển & xử lý sự kiện 23

Page 24: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Thuộc tính

Phương thức

WebBrowser

Thuộc tính

LocationURL Thiết lập URL cho trang hiện tại

Thuộc tính

Phương thức

Lập trình giao diện - Điều khiển & xử lý sự kiện 24

Phương thức

Navigate(url) Duyệt đến trang được chỉ ra

GoBack() Duyệt trang trước đó trong history

GoForward() Duyệt trang tiếp theo trong history

Page 25: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo WebBrowser

Lập trình giao diện - Điều khiển & xử lý sự kiện 25

Page 26: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo WebBrowser

private void btnOK_Click(object sender, EventArgs e){

string url = txtUrl.Text;webBrowser.Navigate(new Uri(url));

}

Lập trình giao diện - Điều khiển & xử lý sự kiện 26

private void btnOK_Click(object sender, EventArgs e){

string url = txtUrl.Text;webBrowser.Navigate(new Uri(url));

}

Page 27: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Tự tìm hiểu các điều khiển còn lại của nhóm CommonControls, 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

Lập trình giao diện - Điều khiển & xử lý sự kiện 27

Page 28: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

CONTAINERS

Lập trình giao diện - Điều khiển & xử lý sự kiện 28

Page 29: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Containers

Lập trình giao diện - Điều khiển & xử lý sự kiện 29

Ví dụ về điều khiển Tab(Options của Firefox)

Page 30: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

MENUS & TOOLBARS

Lập trình giao diện - Điều khiển & xử lý sự kiện 30

Page 31: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Menus & Toolbars

Lập trình giao diện - Điều khiển & xử lý sự kiện 31

ContextMenuStrip

ToolStrip

StatusStrip

Page 32: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Menu trạng thái (Status Strip)

StatusStrip (Menu trạng thái) Nằm cuối form cho biếttrạng thái hiện tại của ứng dụng

Lập trình giao diện - Điều khiển & xử lý sự kiện 32

Page 33: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Visual Studio cung cấp menungữ cảnh cho các điều khiểnMenu xuất hiện khi người dùngnhấn phải chuột vào điềukhiển

Muốn sử dụng menu ngữ cảnhcho một điều khiển cần

1. Thêm menu ngữ cảnh vàoform2. Gán menu ngữ cảnh đó chothuộc tính ContextMenuStrip

Menu ngữ cảnh (ContextMenuStrip)

Visual Studio cung cấp menungữ cảnh cho các điều khiểnMenu xuất hiện khi người dùngnhấn phải chuột vào điềukhiển

Muốn sử dụng menu ngữ cảnhcho một điều khiển cần

1. Thêm menu ngữ cảnh vàoform2. Gán menu ngữ cảnh đó chothuộc tính ContextMenuStrip

Lập trình giao diện - Điều khiển & xử lý sự kiện 33

Page 34: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

CÁC ĐIỀU KHIỂN KHÁC

Lập trình giao diện - Điều khiển & xử lý sự kiện 34

Page 35: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Các điều khiển khác

Lập trình giao diện - Điều khiển & xử lý sự kiện 35

Page 36: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Cung cấp cơ chế để thực thi hành động sau mỗi khoảngthời gianThuộ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

ra

Cung cấp cơ chế để thực thi hành động sau mỗi khoảngthời gianThuộc tính/Phương thức

Sự kiện

Lập trình giao diện - Điều khiển & xử lý sự kiện 36

Chỉ ra khoảng thời gian sự kiện Tick xẩyra

Start() Bắt đầu tính thời gian

Stop() Kết thúc Timer

Thuộc tính/Phương thức Mô tảTick Xẩy ra mỗi khoảng thời gian được chỉ ra

trong thuộc tính Interval

Page 37: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo ProgressBar với Timer

private void Form1_Load(object sender, EventArgs e){

pb.Minimum = 0;pb.Maximum = 100;pb.Value = 20;pb.Step = 2;Controls.Add(pb);timer1.Interval = 200;timer1.Start();

}

private void timer1_Tick(object sender, EventArgs e){

pb.PerformStep();if (pb.Value == pb.Maximum){

timer1.Stop();}

}Lập trình giao diện - Điều khiển & xử lý sự kiện 37

private void Form1_Load(object sender, EventArgs e){

pb.Minimum = 0;pb.Maximum = 100;pb.Value = 20;pb.Step = 2;Controls.Add(pb);timer1.Interval = 200;timer1.Start();

}

private void timer1_Tick(object sender, EventArgs e){

pb.PerformStep();if (pb.Value == pb.Maximum){

timer1.Stop();}

}

Page 38: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Chọ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

Lập trình giao diện - Điều khiển & xử lý sự kiện 38

Page 39: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

THIẾT LẬP THUỘC TÍNHCHO ĐIỀU KHIỂN

Lập trình giao diện - Điều khiển & xử lý sự kiện 39

THIẾT LẬP THUỘC TÍNHCHO ĐIỀU KHIỂN

Page 40: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Có hai cách thiết lập thuộc tính cho điều khiểnThiết lập thuộc tính cho các điều khiển trên panelpropertiesViết mã để thiết lập cho tất cả các thuộc tính cho điềukhiển

Khi thiết lập thuộc tính trên panel properties, IDE tự sinhcode trong file Designer.cs

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ểnThiết lập thuộc tính cho các điều khiển trên panelpropertiesViết mã để thiết lập cho tất cả các thuộc tính cho điềukhiển

Khi thiết lập thuộc tính trên panel properties, IDE tự sinhcode trong file Designer.cs

Lập trình giao diện - Điều khiển & xử lý sự kiện 40

Page 41: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo thiết lập thuộc tính bằng IDE

Lập trình giao diện - Điều khiển & xử lý sự kiện 41

// Mã được sinh bởi IDEthis.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!!!";

Page 42: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo thiết lập thuộc tínhcho đ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;

}

Lập trình giao diện - Điều khiển & xử lý sự kiện 42

private void Form1_Load(object sender, EventArgs e){

lblHow.Text = "How are you?";this.lblHow.ForeColor = System.Drawing.SystemColors.Highlight;

}

Page 43: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

VIẾT MÃ THÊM ĐIỀUKHIỂN VÀO FORM

Lập trình giao diện - Điều khiển & xử lý sự kiện 43

VIẾT MÃ THÊM ĐIỀUKHIỂN VÀO FORM

Page 44: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Có thể thêm điều khiển vào form bằng cách sử dụngcông cụ hoặc viết mã; trong lúc thiết kế hoặc trong quátrình thực thi ứng dụngCác bước để thêm điều khiển vào form

B1. Tạo thực thể của điều khiểnB2. Thêm điều khiển vào formB3. 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 formCó thể thêm điều khiển vào form bằng cách sử dụngcông cụ hoặc viết mã; trong lúc thiết kế hoặc trong quátrình thực thi ứng dụngCác bước để thêm điều khiển vào form

B1. Tạo thực thể của điều khiểnB2. Thêm điều khiển vào formB3. Thiết lập các thuộc tính cho điều khiển

Lập trình giao diện - Điều khiển & xử lý sự kiện 44

private void Form1_Load(object sender, EventArgs e){

CheckedListBox clb = new CheckedListBox();Controls.Add(clb);

clb.Items.Add("hi");clb.Items.Add("how");clb.Items.Add("are");clb.Items.Add("you");

}

12

3

Page 45: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

SỰ KIỆNCỦA ĐIỀU KHIỂN

Lập trình giao diện - Điều khiển & xử lý sự kiện 45

SỰ KIỆNCỦA ĐIỀU KHIỂN

Page 46: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Visual Studio cung cấp rất nhiều sự kiện cho mỗi điềukhiể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ácnhau tùy vào đặc thù của điều khiểnSự kiện được chia làm 3 nhóm chính

Sự kiện đối với chuộtMouseClick, MouseDown, MouseEnter…

Sự kiện đối với bàn phímKeyUp, KeyDown..

Sự kiện khácTextChanged, FontChanged…

Sự kiện điều khiển

Visual Studio cung cấp rất nhiều sự kiện cho mỗi điềukhiể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ácnhau tùy vào đặc thù của điều khiểnSự kiện được chia làm 3 nhóm chính

Sự kiện đối với chuộtMouseClick, MouseDown, MouseEnter…

Sự kiện đối với bàn phímKeyUp, KeyDown..

Sự kiện khácTextChanged, FontChanged…

Lập trình giao diện - Điều khiển & xử lý sự kiện 46

Page 47: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Có 3 sự kiện chính của bàn phímKeyDownKeyPressKeyUp

Khi một phím ký tự được nhấn thì các sự kiện xẩy ratheo trình tự KeyDown, KeyPress và KeyUpKhi một phím không phải ký tự được nhấn, chỉ có sựkiện KeyDown và KeyUpSự kiện này sẽ được áp dụng cho điều khiển nào đangnhận được focus

Sự kiện đối với bàn phím

Có 3 sự kiện chính của bàn phímKeyDownKeyPressKeyUp

Khi một phím ký tự được nhấn thì các sự kiện xẩy ratheo trình tự KeyDown, KeyPress và KeyUpKhi một phím không phải ký tự được nhấn, chỉ có sựkiện KeyDown và KeyUpSự kiện này sẽ được áp dụng cho điều khiển nào đangnhận được focus

Lập trình giao diện - Điều khiển & xử lý sự kiện 47

Page 48: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo Sự kiện đối với bàn phím

Lập trình giao diện - Điều khiển & xử lý sự kiện 48

private void button1_KeyPress(object sender, KeyPressEventArgs e){

MessageBox.Show("Button 1");}

private void button2_KeyPress(object sender, KeyPressEventArgs e){

MessageBox.Show("Button 2");}

Page 49: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo Sự kiện đối với bàn phím

Lập trình giao diện - Điều khiển & xử lý sự kiện 49

Nhấn một phím bất kỳ khiButton 1 được focus

Nhấn một phím bất kỳ khiButton 2 được focus

Page 50: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Để gán một phương thức xử lý sự kiện cho một điềukhiển, cần nối phương thức xử lý sự kiện cho sự kiệnMỗi phương thức xử lý sự kiện có thể nối cho nhiều sựkiện

Xử lý sự kiện trong C#

SỰ KIỆN PHƯƠNG THỨCXỬ LÝ SỰ KIỆN

button1.Click private void button1_Click(objectsender, EventArgs e){}

Để gán một phương thức xử lý sự kiện cho một điềukhiển, cần nối phương thức xử lý sự kiện cho sự kiệnMỗi phương thức xử lý 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 50

PHƯƠNG THỨCXỬ LÝ SỰ KIỆN

button1.Click private void button1_Click(objectsender, EventArgs e){}

this.button1.Click += new System.EventHandler(this.button1_Click);

Mã này thuộc file Designer.cs, IDE tự sinh mã

Page 51: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo nối một phương thứcxử lý sự kiện với nhiều sự kiện

//Viết mã cho xử lý sự kiệnprivate void xoaTextBoxTong(object sender, EventArgs e){

txtTong.Text = "";}

2

1

Lập trình giao diện - Điều khiển & xử lý sự kiện 51

Gán phương thức xử lý sự kiệncho các TextBox Số kiện hàngvà Số sách trong mỗi kiện

this.txtSoKienHang.TextChanged += newSystem.EventHandler(this.xoaTextBoxTong);this.txtSoSach.TextChanged += newSystem.EventHandler(this.xoaTextBoxTong);

Mã được IDE tự sinh

2

3

Page 52: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Demo nối một phương thứcxử lý sự kiện với nhiều sự kiện

Lập trình giao diện - Điều khiển & xử lý sự kiện 52

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ổngsố sách: được xóa

Page 53: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Tì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À

Lập trình giao diện - Điều khiển & xử lý sự kiện 53

Page 54: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

.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ụngCác điều khiển CheckListBox, ListView, ProgressBar,WebBrowser thuộc nhóm CommonCá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ụngCác điều khiển CheckListBox, ListView, ProgressBar,WebBrowser thuộc nhóm CommonCá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

Page 55: Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - Giáo trình FPT

Visual Studio cung cấp rất nhiều sự kiện cho mỗi điềukhiển. Mỗi điều khiển được hỗ trợ một tập các sự kiệnkhác nhau tùy vào đặc thù của điều khiểnSự kiện được chia làm 3 nhóm chính: sự kiện đối vớichuộ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ềukhiển, cần nối phương thức xử lý sự kiện cho sự kiệnMỗ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ềukhiển. Mỗi điều khiển được hỗ trợ một tập các sự kiệnkhác nhau tùy vào đặc thù của điều khiểnSự kiện được chia làm 3 nhóm chính: sự kiện đối vớichuộ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ềukhiển, cần nối phương thức xử lý sự kiện cho sự kiệnMỗ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