Top Banner
2007 C Programming, 2 nd edition. KHOA CÔNG NGHTHÔNG TIN BMÔN CÁC HTHNG THÔNG TIN Ch Ch ươ ươ ng 3 ng 3 Các điu kin nâng cao Các điu kin nâng cao Hoàng Hu Vit – IT Faculty, Vinh University Email: [email protected]
67
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: VnChapter3

2007 C Programming, 2nd edition.

KHOA CÔNG NGHỆ THÔNG TINBỘ MÔN CÁC HỆ THỐNG THÔNG TIN

ChChươương 3ng 3Các điều kiển nâng caoCác điều kiển nâng cao

Hoàng Hữu Việt – IT Faculty, Vinh UniversityEmail: [email protected]

Page 2: VnChapter3

Slide 2

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Nội dungNội dung

ListBoxCheckedListBoxComboBoxTabControlMenuToolbarMDI WindowsTreeViewListView

Page 3: VnChapter3

Slide 3

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

ListBoxCho phép xem và chọn các dòng dữ liệu

Page 4: VnChapter3

Slide 4

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Các thuộc tính thường dùngItems: Mảng các dòng trong ListBox.

Items[0] = “Cat”Items[1] = “Mouse”

MultiColumn: Có/không chia ListBox thành nhiều cột.

MultiColum = true

Page 5: VnChapter3

Slide 5

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Các thuộc tính thường dùngSelectedIndex: Trả về dòng hiện thời được chọn

Nếu chọn nhiều dòng thì trả về 1 giá trị tuỳ ý của các dòng được chọn.Nếu không chọn thì trả về giá trị -1.

SelectedIndices: Trả về một mảng các chỉ số của các dòng được chọn.SelectedItem: Trả về giá trị dòng được chọn.SelectedItems: Trả về một mảng giá trị các dòng được chọn.

Page 6: VnChapter3

Slide 6

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Các thuộc tính thường dùngSorted: Có/Không sắp xếp dữ liệu trong ListBox. Ngầm định là False.SelectionMode: Xác định số lượng dòng được chọn của ListBox.

one: Một dòngMulti: Nhiều dòng

Sorted and SelectionMode

Page 7: VnChapter3

Slide 7

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Các phương thức thường dùngGetSelected(index): Trả về True dòng Index được chọn, ngược lại trả về false.Add: Thêm một dòng vào ListBox

listBox1.Items.Add(“Cat”);listtBox1.Items.Add(“Mouse”);

RemoveAt(row): Xoá dòng ở vị trí rowlistBox1.Items.RemoveAt(row);

Clear: Xoá tất cả các dònglistBox1.Items.Clear();

Page 8: VnChapter3

Slide 8

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Sự kiện thường dùngSelectedIndexChanged: Xảy ra khi chọn một dòng. Ngầm định khi nháy đúp ở chế độ thiết kế.

Ví dụXây dựng Form

Page 9: VnChapter3

Slide 9

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Ví dụ

private void btnAdd_Click(object sender, EventArgs e){

listBox1.Items.Add(txtInput.Text);txtInput.Clear();

}private void btnRemove_Click(object sender, EventArgs e){

int row=listBox1.SelectedIndex;if (row != -1) listBox1.Items.RemoveAt(row);

}private void btnClear_Click(object sender, EventArgs e){

listBox1.Items.Clear(); }

Page 10: VnChapter3

Slide 10

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListBoxListBox

Bài tậpXây dựng Form cho phép di chuyển các dòng giữa 2 ListBox

Page 11: VnChapter3

Slide 11

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

CheckedListBoxCheckedListBox

CheckedListBoxe là sự mở rộng của ListBox bằng cách thêm CheckBox ở phía bên trái mỗi dòng

Có thể chọn các dòng

Page 12: VnChapter3

Slide 12

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

CheckedListBoxCheckedListBox

Các thuộc tính thường dùngCheckedItems: Mảng các giá trị của dòng được đánh dấu Check.CheckedIndices: Mảng các chỉ số dòng được đánh dấu Check.

Phương thức thường dùngGetItemChecked(index): Trả về true nếu dòng được chọn.

Sự kiện thường dùngItemCheck: Xảy ra khi dòng được checked hoặcunchecked.

Page 13: VnChapter3

Slide 13

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

CheckedListBoxCheckedListBox

Ví dụXây dựng Form khi đánh dấu check thì dòng được đưa sang ListBox bên phải, khi bỏ dấu Check thì xoá dòng trong ListBox bên phải

Page 14: VnChapter3

Slide 14

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

CheckedListBoxCheckedListBox

Ví dụprivate void myCheckedListBox_Load(object sender, EventArgs e){

checkedListBox1.Items.Add(“C++ HTP”);}

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e){

string item = checkedListBox1.SelectedItem.ToString();if ( e.NewValue == CheckState.Checked ){listBox1.Items.Add(item);

}else{listBox1.Items.Remove(item);

}}

Page 15: VnChapter3

Slide 15

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

CheckedListBoxCheckedListBox

Bài tậpXây dựng form cho phép đánh dấu và chuyển các dòng giữa 2 CheckedListBox

Page 16: VnChapter3

Slide 16

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

CheckedListBoxCheckedListBox

Bài tậpSự kiện cho nút Add của CheckedListBox

private void btnAdd_Click(object sender, EventArgs e){

for (int i = 0; i < checkedListBox1.Items.Count - 1; i++){

if (checkedListBox1.GetItemChecked(i) == true){

// Adds Item i to checkedListBox2string item = checkedListBox1.Items[i].ToString();checkedListBox2.Items.Add(item);// Removes Item i at checkedListBox1checkedListBox1.Items.RemoveAt(i);

}}

}

Page 17: VnChapter3

Slide 17

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ComboBoxComboBox

Là sự kết hợp của TextBox và ListBoxCác thuộc tính thường dùng

DropDownStyle: Xác định kiểu của ComboBox.Simple: Chọn hoặc gõ giá trịDropDown (ngầm định): Chọn hoặc gõ giá trịDropDownList: Chỉ cho phép chọn giá trị.

Page 18: VnChapter3

Slide 18

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ComboBoxComboBox

Các thuộc tính thường dùngItems: Mảng các dòng trong ComboBoxSelectedIndex: Chỉ số dòng được chọn. Nếu không chọn có giá trị -1.SelectedItem: Giá trị dòng được chọn.Sorted: Có/Không sắp xếp dữ liệu trong ComboBox. Ngầm định là false.

Sự kiện thường dùngSelectedIndexChanged: Xảy ra khi chọn 1 dòng.

Page 19: VnChapter3

Slide 19

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ComboBoxComboBox

Các phương thức thường dùngAdd: Thêm một dòng vào ComboBox

comboBox1.Items.Add(“Cat”);comboBox1.Items.Add(“Mouse”);

RemoveAt(row): Xoá dòng ở vị trí rowcomboBox1.Items.RemoveAt(row);

Clear: Xoá tất cả các dòng trong ComboBoxcomboBox1.Items.Clear();

Page 20: VnChapter3

Slide 20

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ComboBoxComboBox

Ví dụXây dựng Form để lấy Font của hệ thống

Page 21: VnChapter3

Slide 21

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ComboBoxComboBox

Ví dụprivate void ComboBox_Load(object sender, EventArgs e){

FontFamily[] ff = FontFamily.Families;for (int i = 0; i <ff.Length; i++)cboFont.Items.Add(ff[i].Name);

for (int i = 8; i <= 72; i++)cboSize.Items.Add(i);

}private void cboFont_SelectedIndexChanged(object sender, EventArgs e){

if (cboFont.Text.Trim() == "") return;lbDisplay.Font = new Font(cboFont.Text,lbDisplay.Font.Size);

}private void cboSize_SelectedIndexChanged(object sender, EventArgs e){

if (cboSize.Text.Trim() == "") return;lbDisplay.Font = new Font(lbDisplay.Font.Name,

(float)Convert.ToDouble(cboSize.Text));}

Page 22: VnChapter3

Slide 22

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MenuMenu

Dùng để nhóm các lệnh cùng nhauMenu có thể chứa

Menu ngangMenu dọcMenu conCác biểu tượngCác phím nóngCác đường phân cách...

Page 23: VnChapter3

Slide 23

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MenuMenu

Xây dựng menuKéo biểu tượng MenuStrip vào Form

Text boxes used to add items to menu

Menu icon

Menu Designer

Page 24: VnChapter3

Slide 24

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MenuMenu

Xây dựng menuGõ các dòng cho menuĐặt tên cho các dòng của menu

Chọn cửa sổ Properties và đặt thuộc tính NameTên menu đặt bằng tiền tố mnu (ví dụ: mnuFile, mnuEdit)

Chèn hình ảnh cho các dòng của menuNháy chuột phải và chọn Set ImageChọn Local Resource Import chọn hình ảnh

Đặt phím nóng cho các dòng của menuChọn cửa sổ Properties và đặt thuộc tính ShortCutKey

Page 25: VnChapter3

Slide 25

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MenuMenu

Các thuộc tính thường dùngName: Tên menu được dùng trong mã lệnh.Checked: Có/Không dòng menu xuất hiệnchecked. Ngầm định là false.ShortCutKey: Đặt phím nóng cho menuShowShortcut: Có/Không phím nóng hiển thị trên dòng menu. Ngầm định là true.Text: Xuất hiện trên dòng menu.

Page 26: VnChapter3

Slide 26

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MenuMenu

Sự kiện thường dùngClick: Xảy ra khi một dòng của menu được click chuột hoặc ấn phím nóng. Ngầm định khi nháy đúp chuột trong chế độ thiết kế.

Viết lệnh cho dòng của menu gọi một Form<Tên lớp> <Tên form> = new <Tên lớp>;<Tên Form>.Show();<Ten Form>.ShowDialog();

Page 27: VnChapter3

Slide 27

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MenuMenu

Ví dụ thiết kế menu

Chú ý: name = mnu+text (e.g. mnuFile, mnuNew)

Page 28: VnChapter3

Slide 28

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Menu ngữ cảnhMenu ngữ cảnh

Menu hiển thị khi nháy chuột phải trên đối tượng của Form hoặc trên Form.Thiết kế menu ngữ cảnh

Kéo điều khiển MenuContext vào formThiết kế các dòng menu ngữ cảnh giống như thiết kế menu

Hiển thị menu ngữ cảnhChọn đối tượng hoặc FormĐặt thuộc tính ContextMenuStrip của đối tượng được chọn là tên của menu ngữ cảnh.

Page 29: VnChapter3

Slide 29

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ToolBarToolBar

ToolBar dùng để chứa các biểu tượng của các chức năng thường được sử dụng trong chương trình.Xây dựng ToolBar

Kéo điều khiển ToolStrip vào FormNháy chuột vào biểu tượng phải và chọn đối tượng tạo ToolBar

Button: Nút ấnDropDownButton: Nút sổ xuốngSeparator: Đường phân cách

Page 30: VnChapter3

Slide 30

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ToolBarToolBar

Xây dựng ToolBarĐặt tên cho các nút của ToolBar

Chọn cửa sổ Properties và đặt thuộc tính NameTên TooBar đặt bằng tiền tố tb (ví dụ: tbNew, tbOpen)

Chèn hình ảnh cho đối tượng của ToolBarNháy chuột phải và chọn Set ImageChọn Local Resource Import chọn hình ảnh

Viết mã lệnhGọi từ menu: <tên menu>.PerformClick()Gọi trực tiếp đối tượng

Page 31: VnChapter3

Slide 31

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Một ứng dụng MDI cho phép người dùng thao tác với nhiều cửa sổ ở một thời điểm.SDI và MDI Forms

Single Document Interface (SDI) Multiple Document Interface (MDI)

Page 32: VnChapter3

Slide 32

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Ví dụ MDI Parent và MDI Child

MDI parent

MDI childMDI child

Page 33: VnChapter3

Slide 33

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Thuộc tính MDI Parent của FormIsMdiContainer: Có/Không một Form là form MDI Parent. Ngầm định là False.ActiveMdiChild: Trả về Form Child đang được kích hoạt.

Thuộc tính MDI ChildIsMdiChild: Có/Không Form là một MDI child (thuộc tính read-only).MdiParent: Chi ra một MDI parent của Form

<Tên form>.MdiParent = this

Page 34: VnChapter3

Slide 34

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Phương thức thường dùngLayoutMdi: Xác định kiểu hiển thị của Form con trong MDI Form.

ArrangeIcons: Sắp xếp các biểu tượng dưới MDICascade: Sắp xếp các cửa sổ chồng nhauTileHorizontal: Sắp xếp cửa sổ theo chiều ngangTileVertical: Sắp xếp cửa sổ theo chiều dọc

Page 35: VnChapter3

Slide 35

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Các kiểu sắp xếp

ArrangeIcons Cascade

Page 36: VnChapter3

Slide 36

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Các kiểu sắp xếp

TileHorizontal TileVertical

Page 37: VnChapter3

Slide 37

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

MDI WindowsMDI Windows

Bài tậpXây dựng một hệ soạn thảo văn bản theo dạng MDI Form.

Page 38: VnChapter3

Slide 38

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewTreeView

Hiển thị thông tin theo các nút (node)Các nút cha có các nút conNút đầu tiên gọi là nút gốc

Ấn dấu [+] để mở nútẤn dấu [-] để thu gọn nút

Mỗi nút có hình ảnh kèm theoNút cha

Nút con

Page 39: VnChapter3

Slide 39

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewTreeView

Các thuộc tính thường dùngCheckBoxes: Có/không xuất hiện các checkbox trên các node. Ngầm định là False.Checked: Có/không một Node được check (thuộc tính CheckBoxes phải được đặt là True)ImageList: Chỉ ra danh sách ảnh hiển thị trên các node.

ImageList là một mảng các đối tượng ảnh.Tạo danh sách ảnh ImageList bằng cách kéo điều kiển vào Form, nháy chuột phải và chọn Choose Image để thêm các ảnh vào ImageList.

Page 40: VnChapter3

Slide 40

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

Các thuộc tính thường dùngNodes: Mảng các TreeNodes trong TreeView.

Nodes.Add: Bổ sung một node vào cây.Nodes.Clear: Xoá toàn bộ các node trên cây.Nodes.Remove: Xoá một node trên cây và các node con của nó.

SelectedNode: Node hiện thời được chọnFullPath: Chỉ ra đường dẫn đến node bắt đầu từ node gốc.

Page 41: VnChapter3

Slide 41

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

Các thuộc tính thường dùngSelectedImageIndex: Chỉ ra chỉ số ảnh được hiển thị trên node khi node được chọn.ImageIndex: Chỉ ra chỉ số ảnh được hiển thị trên node khi node không được chọn (deselected).Text: Text hiển thị của Node.FirstNode: Node con đầu tiên của node.LastNode: Node con cuối cùng của node.PrevNode: Node con trước node con hiện thời.NextNode: Node con tiếp theo node hiện thời.

Page 42: VnChapter3

Slide 42

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

Các phương thức thường dùngCollapse: Thu nhỏ các node con của node.Expand: Mở rộng các node con của node.ExpandAll: Mở rộng tất cả các node con.GetNodeCount: Trả về số lượng node con.

Các sự kiện thường dùngAfterSelect: Xảy ra khi một node được chọn (ngầm định khi nháy đúp chuột ở chế độ thiết kế).BeforeExpand: Xẩy ra khi mở rộng một node

Page 43: VnChapter3

Slide 43

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

Ví dụ

Page 44: VnChapter3

Slide 44

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

ExerciseSet name properties

treeView1txtInputcomboBox1btnAddRootbtnAddChildbtnDelete

Declare in classprivate TreeNode currentNode;

Page 45: VnChapter3

Slide 45

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

Set imageList1 propertyImageCollection: The images stored in this ImageList.

Load Event

private void AddTreeView_Load(object sender, EventArgs e)

{

treeView1.ImageList = imageList1;

comboBox1.Items.Add("Image1");

comboBox1.Items.Add("Image2");

comboBox1.SelectedIndex = 0;

}

Page 46: VnChapter3

Slide 46

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

btnAddRoot Click Event

treeView1_AfterSelect Click Event

private void btnAddRoot_Click(object sender, EventArgs e){

if (txtInput.Text.Trim() == "") return;TreeNode childNode = new TreeNode();childNode.Text = txtInput.Text;childNode.ImageIndex = comboBox1.SelectedIndex;treeView1.Nodes.Add(childNode);

}

private void treeView1_AfterSelect(object sender,TreeViewEventArgs e)

{currentNode = e.Node;

}

Page 47: VnChapter3

Slide 47

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TreeViewsTreeViews

btnAddChild and btnDelete Click Event

private void btnAddChild_Click(object sender, EventArgs e)

{

if (txtInput.Text.Trim() == "") return;

TreeNode childNode = new TreeNode();

childNode.Text = txtInput.Text;

childNode.ImageIndex = comboBox1.SelectedIndex;

currentNode.Nodes.Add(childNode);

currentNode.ExpandAll();

}

private void btnDelete_Click(object sender, EventArgs e){

currentNode.Remove(); }

Page 48: VnChapter3

Slide 48

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Dùng để hiển thị dữ liệu theo các dòng và các cột

Có thể chọn một hoặc nhiều dòngCó thể hiển thị các biểu tượng theo các dòng

Ví dụ ListView hiển thị danh sách thư mục TP và các tệp

Page 49: VnChapter3

Slide 49

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Các thuộc tính thường dùngCheckBoxes: Có/không xuất hiện các checkbox trên các dòng dữ liệu (ngầm định là False)Columns: Các cột hiển thị trong chế độ Details.FullRowSelect: Indicates whether all SubItems are hightlighted along with the Item when selected.GridLines: Hiển thị lưới (chỉ hiển thị trong chế độ Details.

Page 50: VnChapter3

Slide 50

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Các thuộc tính thường dùngItems: Mảng các dòng (ListViewItems) trong ListView.LargeImageList: Danh sách ảnh (ImageList) hiển thị trên ListView.SmallImageList: Danh sách ảnh (ImageList)hiển thị trên ListView.MultiSelect: Có/Không cho phép chọn nhiều dòng (ngầm định là True).SelectedItems: Mảng các dòng được chọn.

Page 51: VnChapter3

Slide 51

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Các thuộc tính thường dùngView: Kiểu hiện thị của ListView

Icons: Hiển thị danh sách theo các biểu tượngList: Hiển thị danh sách theo một cộtDetails: Hiển thị ListView theo danh sách nhiều cột

Icons List Details

Page 52: VnChapter3

Slide 52

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Các phương thức thường dùngAdd: Thêm một dòng vào ListViewClear: Xoá tất cả các dòng của ListViewRemove: Xoá một dòng trong ListViewRemoveAt(index): Xoá một dòng ở vị trí index

Sự kiện thường dùngItemSelectionChanged: Xảy ra khi chọn một dòng.

Page 53: VnChapter3

Slide 53

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụThiết kế form nhập, sửa, xoá dữ liệu

Page 54: VnChapter3

Slide 54

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụThiết kế Form và đặt tên các đối tượng

txtId, txtFirstName, txtLastName, txtAddressbtnNew, btnEdit, btnDelete, btnSave, btnCancel.

Đặt thuộc tính cho listView1Columns: Thêm 4 cộtFullRowSelect: trueGridLines: trueMultiSelect: falseView: Details

Page 55: VnChapter3

Slide 55

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụprivate bool modeNew;private int row;//Ham dat dieu khien trang thai cac textbox va cac nutprivate void SetControls(bool edit){

txtId.Enabled = false;txtFirstName.Enabled = edit;txtLastName.Enabled = edit;txtAddress.Enabled = edit;btnNew.Enabled = !edit;btnEdit.Enabled = !edit;btnDelete.Enabled = !edit;btnSave.Enabled = edit;btnCancel.Enabled = edit;

}private void frmListView_Load(object sender, EventArgs e){

SetControls(false);}

Page 56: VnChapter3

Slide 56

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụprivate void btnNew_Click(object sender, EventArgs e){

modeNew = true;SetControls(true);row = listView1.Items.Count;txtId.Text = Convert.ToString(row + 1);txtFirstName.Clear();txtLastName.Clear();txtAddress.Clear();txtFirstName.Focus();

}

private void btnEdit_Click(object sender, EventArgs e){

modeNew = false;SetControls(true);txtFirstName.Focus();

}

Page 57: VnChapter3

Slide 57

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụprivate void btnSave_Click(object sender, EventArgs e){

if (modeNew){

listView1.Items.Add(txtId.Text);listView1.Items[row].SubItems.Add(txtFirstName.Text);listView1.Items[row].SubItems.Add(txtLastName.Text);listView1.Items[row].SubItems.Add(txtAddress.Text);

}else{

listView1.Items[row].SubItems[1].Text = txtFirstName.Text;listView1.Items[row].SubItems[2].Text = txtLastName.Text;listView1.Items[row].SubItems[3].Text = txtAddress.Text;

}SetControls(false);

}

Page 58: VnChapter3

Slide 58

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụprivate void btnCancel_Click(object sender, EventArgs e){

SetControls(false); }

private void btnDelete_Click(object sender, EventArgs e){

try{

listView1.Items.RemoveAt(row);}catch (Exception){}

}

Page 59: VnChapter3

Slide 59

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

ListViewListView

Ví dụprivate void listView1_ItemSelectionChanged(object sender,

ListViewItemSelectionChangedEventArgs e){

row = e.ItemIndex;txtId.Text = listView1.Items[row].SubItems[0].Text;txtFirstName.Text = listView1.Items[row].SubItems[1].Text;txtLastName.Text = listView1.Items[row].SubItems[2].Text;txtAddress.Text = listView1.Items[row].SubItems[3].Text;

}

private void btnClose_Click(object sender, EventArgs e){

this.Close(); }

Page 60: VnChapter3

Slide 60

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Bài tập tổng hợpBài tập tổng hợp

Xây dựng chương trình Explore hiển thị thông tin về tệp

Page 61: VnChapter3

Slide 61

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Bài tập tổng hợpBài tập tổng hợp

Mã nguồnprivate void frmExplore_Load(object sender, EventArgs e){

//Lay o dia cua mayDriveInfo[] drives = DriveInfo.GetDrives();for (int i = 0; i < drives.Length; i++){

TreeNode myNode = new TreeNode();myNode.Text = drives[i].Name;myNode.ImageIndex = 0;myNode.SelectedImageIndex = 0;treeView1.Nodes.Add(myNode);LoadTreeView(myNode.Text, myNode);

}}

Page 62: VnChapter3

Slide 62

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Bài tập tổng hợpBài tập tổng hợp

Mã nguồnpublic void LoadTreeView(string dirValue, TreeNode parentNode){

string[] dirArray = Directory.GetDirectories(dirValue);if (dirArray.Length != 0){

foreach (string directory in dirArray){

DirectoryInfo curDirectory = new DirectoryInfo(directory);TreeNode myNode = new TreeNode(curDirectory.Name);parentNode.Nodes.Add(myNode);// recursively populate every subdirectoryLoadTreeView(directory, myNode);

}}

}

Page 63: VnChapter3

Slide 63

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Bài tập tổng hợpBài tập tổng hợp

Mã nguồnpublic void LoadFilesInDirectory(string curDirectory){

listView1.Items.Clear();DirectoryInfo newDirectory = new DirectoryInfo(curDirectory);// put files and directories into arraysDirectoryInfo[] dirArray = newDirectory.GetDirectories();FileInfo[] fileArray = newDirectory.GetFiles();foreach (DirectoryInfo dir in dirArray){

ListViewItem newDirectoryItem = listView1.Items.Add(dir.Name);newDirectoryItem.SubItems.Add("");newDirectoryItem.SubItems.Add("Folder");newDirectoryItem.SubItems.Add(dir.LastWriteTime.ToString());newDirectoryItem.ImageIndex = 0;

}foreach (FileInfo file in fileArray){

ListViewItem newFileItem = listView1.Items.Add(file.Name);newFileItem.SubItems.Add(file.Length.ToString());newFileItem.SubItems.Add("File");newFileItem.SubItems.Add(file.LastWriteTime.ToString());newFileItem.ImageIndex = 1;

}}

Page 64: VnChapter3

Slide 64

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

Bài tập tổng hợpBài tập tổng hợp

Mã nguồnprivate void treeView1_AfterSelect(object sender, TreeViewEventArgs e){

string currentDirectory = e.Node.FullPath;LoadFilesInDirectory(currentDirectory);

}private void mnuList_Click(object sender, EventArgs e){

listView1.View = View.List;}private void mnuDetails_Click(object sender, EventArgs e){

listView1.View = View.Details;}private void tbUp_Click(object sender, EventArgs e){

string currentDirectory;currentDirectory = treeView1.SelectedNode.Parent.FullPath;LoadFilesInDirectory(currentDirectory);

}

Page 65: VnChapter3

Slide 65

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TabControlTabControl

Tạo ra các cửa sổ TabMỗi cửa sổ Tab gọi là một TabPage

TabPages có thể chứa các điều khiển

TabPage TabControl

Controls in TabPage

Page 66: VnChapter3

Slide 66

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TabControlTabControl

Thêm và xoá các TabPage

Page 67: VnChapter3

Slide 67

Hoàng Hữu Việt

2007 Bộ môn Các Hệ thống Thông tin

TabControlTabControl

Bài tập