Tải bản đầy đủ (.docx) (55 trang)

tài liệu về công nghệ MỘT SỐ ĐIỀU KHIỂN KHÁC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.28 MB, 55 trang )

Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
MỘT SỐ ĐIỀU KHIỂN KHÁC
***
I. TOOLTIP
1. Chức năng
Điều khiển Tooltip hỗ trợ cách sử dụng các điều khiển khác trên form bằng
cách trình bày cửa sổ nhỏ hình chữ nhật với các diễn giải ngắn gọn khi
người sử dụng di chuyển chuột vào điều khiển đó.
2. Một số thuộc tính thường dùng
Tên Ý nghĩa
Active Nhận một trong hai giá trị True hay False
- True: Cho phép cửa sổ Tooltip được xuất hiện
- False: Không cho phép
BackColor Chọn mầu nền cho cửa sổ Tooltip (chính là khung hình chữ nhật hiện ra)
AutomaticDelay Thời gian tính bằng phần ngàn giây áp dụng cho 3 thuộc tính ở dưới đây:
AutoPopDelay, InitiaDelay, ReshowDelay
AutoPopDelay Khoảng thời gian mà cửa sổ điều khiển tooltip xuất hiện kể từ lúc người
dùng di chuyển chuột vào điều khiển cho đến khi kết thúc (1000=1s). (Nói
gắn gọn: Khoảng thời gian mà nó sẽ được xuất hiện khi người dùng di
chuyển chuột vào điều khiển)
InitialDelay Khoảng thời gian mà cửa sổ điều khiển tooltip sẽ chờ để được xuất hiện
kể từ khi người dùng di chuyển chuột vào điều khiển (Ví dụ đặt thuộc tính
là 1000 thì sau khi di chuyển chuyển vào điều khiển 1s thì cửa sổ tooltip sẽ
xuất hiện)
ReshowDelay Khoảng hời gian mà cửa sổ sẽ tắt kể từ khi người dùng di chuyển chuột ra
ngoài điều khiển
IsBalloon Nhận một trong hai giá trị True hay False
- True: Cửa sổ hình chữ nhật bật nên với các góc bo tròn
- False: Cửa sổ hiện nên có hình chữ nhật
TooltipIcon Biểu tượng xuất hiện trên hộp Tooltip


TooltipTitle Chuỗi xuất hiện bên cạnh Icon ở trên(Không phải là Tooltip)
3. Sử dụng điều khiển Tooltip
Khi kéo một điều khiển Tooltip vào Form thì mặc định tên của nó là: toolTip1. Khi đó
các điều khiển trên Form (Textbox, Button hay Label…..) tự động có thêm một thuộc tính
nữa là: Tooltip on Tooltip1 (Với Tooltip1 là tên của điều khiển vừa đưa vào - Thuộc tính
mới này nằm trong hộp thoại Properties). Bạn chỉ cần đặt giá trị cho thuộc tính này (thuộc
tính Tooltip on Tooltip1 của các điều khiển như Textbox, Button…chứ không phải của
tooltip) là một chuỗi gợi nhắc nào đó. Lúc chạy chương trình khi trỏ chuột vào điều khiển
đó hiện nên thông báo (Chuỗi vừa nhập ở thuộc tính Tooltip on Tooltip1)
I. ERROR PROVIDER
***
1. Chức năng
Điều khiển này cung cấp giao tiếp giữa người sử dụng với các thông tin lỗi
của các điều khiển trên Form
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
2. Một số thuộc tính thường dùng
Tên Ý nghĩa
BlinkRate Khoảng thời gian giữa hai lần nhấp nháy (1000=1s)
BlinkStyle Chọn kiểu hiển thị cho điều khiển ErrorProvider. Nhận 1 trong 3 giá trị:
- Khi có lỗi mới nhấp nháy (BlinkIfDifferentError - mặc định).
- Nhấp nháy liên tục (AlwaysBlink),
- Không bao giờ nhấp nháy (NeverBlink).
Icon Icon xuất hiện bên cạnh điều khiển, có thể chọn Icon bất kì trên máy tính
của bạn chứ không nhất thiết là Icon mặc định của VS (hình tròn đỏ)
3. Một số phương thức thường sử dụng
Tên Ý nghĩa
SetError Khai báo chuỗi xuất hiện tương tự như thuộc tính Error on errorProvider1.
GetError Nhận chuỗi từ thuộc tính Error on errorProvider1 của điều khiển.
Clear Loại bỏ tất cả các chuỗi diển giải cho các điều khiển

4. Sử dụng điều khiển ErrorProvider
Khi kéo một điều khiển ErrorProvider vào Form thì mặc định tên của nó là:
errorProvider1. Khi đó các điều khiển trên Form (Textbox, Button hay
Label…..) tự động có thêm một thuộc tính nữa là: Error on errorProvider1
(Với errorProvider1 là tên của điều khiển Error Provider vừa đưa vào - Thuộc
tính mới này nằm trong hộp thoại Properties). Bạn chỉ cần đặt giá trị cho
thuộc tính này là một chuỗi nào đó (thuộc tính Error on errorProvider1 của
các điều khiển như Textbox, Button…chứ không phải của điều khiển
ErrorProvider). Lúc chạy chương trình thì có một biểu tượng hình tròn đỏ bên
cạnh điều khiển mà bạn đặt thuộc tính Error on errorProvider1, khi trỏ vào đó
sẽ xuất hiện dòng thông báo trên).
Ví dụ: Chúng ta có một form: frmErrorProvider. Trên form có 2 điều khiển
Textbox có tên là: txtUser, txtPass và một button có tên btLogin. Khia nhấn
vào nút btLogin nếu giá trị của 2 ô txtUser và txtPass để trống (“”) thì xuất
hiện điều điều khiển ErrorProvider bên cạnh các điều khiển này
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
private void btLogin_Click(object sender, EventArgs e)
{
//Chúng ta có thể kéo một điều khiển ErrorProvider vào form và đặt các thuộc tính
//Cho các điều khiển txtUser, txtPass và điều khiển ErrorProvider bạn vừa tạo ra
//Ở đây khai báo đối tượng ErrorProvider bằng code
//Khai báo đối tượng thuộc kiểu ErrorProvider
ErrorProvider ep = new ErrorProvider();
//Đặt các thuộc tính
ep.Clear();
ep.BlinkRate = 300;
ep.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;
//Đặt cho một một điều khiển (Textbox) sử dụng phương thức SetError
if (txtUser.Text == "")

ep.SetError(txtUser, "User không được để trống");
if (txtPass.Text == "")
ep.SetError(txtPass, "Pass không được để trống");
}
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
II. PROGRESSBAR
***
1. Chức năng
Điều khiển ProgressBar dùng trình bày thời lượng thực hiện công việc (ví
dụ: thanh tiến trình trên trình duyệt IE…).
2. Một số thuộc tính thường dùng
Tên Ý nghĩa
Maximum Giới hạn trên (cực đại) của điều khiển ProgressBar
Minimum Giới hạn dưới (cực tiểu) của điều khiển ProgressBar
Value Giá trị hiện hành đang xử lý trên điều khiển ProgressBar
Style Kiểu trình bày của ProgressBar và nhận 1 trong 3 giá trị:
- Blocks: Tô từng khối (các khối có cách nhau) màu xanh từ trái qua
phải
- Continuous: Tô màu xanh (liền nhau) từ trái qua phải
- Marquee: Cuộn màu xanh chạy từ trái qua phải
Step Bước nhảy của ProgressBar
3. Ví dụ đơn giản về ProgressBar
Giả sử chúng ta có form: frmProgresBar. Trên form có một điều khiển
ProgressBar có tên progressBar1, một điều khiển timer có tên timer1 và một
label có tên là label1. Chúng ta minh họa sử dụng ProgressBar qua ví dụ đơn
giản sau:
int i = 1;

private void frmProgresBar_Load(object sender, EventArgs e)

{
//Đặt một số thông số cho ProgressBar
progressBar1.Maximum = 100;
progressBar1.Minimum = 0;
//Đặt một số thông số cho Timer
timer1.Interval = 1000; //1 giây
timer1.Enabled = true;
}
//Sự kiện Tick của Timer
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value = 10 * i;
label1.Text = i.ToString();
i = i + 1;
if (i > 10)
i = 1;
}
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
III. LISTVIEW
***
1. Chức năng
Điều khiển ListView dùng để trình bày các phần tử dạng danh sách với
nhiều hình dạng khác nhau.
2. Một số thuộc tính thường dùng
Tên Ý nghĩa
CheckBoxes Nhận một trong hai giá trị True hay False (mặc định là False)
- True: Hiển thị một checkbox bên cạnh phần tử đầu tiên của mỗi hàng (1
hàng = 1 ListviewItem) trong Listview
- False: Ngược lại

Columns Tập các cột trong ListView là một Collection. Thông qua thuộc tính này có thể
thêm các cột vào Listview (Có thể thêm các cột vào Listview thông qua giao
diện đồ họa hay có thể viết Code. Chú ý: Phải đặt thuộc tính View là Detail thì
bạn mới có thể nhìn thấy các cột này)
ContextMenuStrip Gắn một menu ngữ cảnh với điều khiển ListView (khi nhấn chuột phải vào
Listview thì sẽ hiển thị menu này)
FullRowSelect Nhận một trong hai giá trị True hay False
- True: Cho phép chọn (bôi đen) cả hàng (của phần tử đang được chọn. Chú
ý: Thuộc tính View = Detail)
- False: Ngược lại
GridLines Nhận một trong hai giá trị True hay False
- True: Hiển thị lưới bao quanh và ngăn cách các hàng (Chỉ có hiệu lực nếu
thuộc tính View = Detail)
- False: Ngược lại
Group Khai báo nhóm để phân loại các phần tử sau khi trình bày trên điều khiển
Listview
HeaderStyle Đây là thuộc tính cho phép chọn Style cho Listview trong chế độ View là
Report
Items Là một Collection. Cho phép tạo ra các giá trị cho các hàng, cột trong Listview
(tất nhiên có thể dùng giao diện đồ họa hay viết Code)
LabelEdit Nhận một trong hai giá trị True hay False
- True: Cho phép thay đổi (sửa) Text của các phần tử (các Ô).
- False: Ngược lại
LabelWap Nhận một trong hai giá trị True hay False
- True: Chuỗi §HSPKTHYẽ tự động xuống hàng khi chiều dài không đủ để
trình bày
- False: Ngược lại
MultiSelect Nhận một trong hai giá trị True hay False
- True: Cho phép chọn nhiều hàng (ListviewItem). Mặc định là True
- False: Không cho phép chọn nhiều hàng

LargeImageList Đối tượng ImageList chứa danh sách các Image theo chỉ số (Index) từ 0 đến n-
1. Được sử dụng nếu thuộc tính View là LargeIcon
SmallImageList Đối tượng ImageList chứa danh sách các Image theo chỉ số (index) từ 0 đến n-
1. Được sử dụng nếu thuộc tính View là SmallIcon
Scrollable Nhận một trong hai giá trị True hay False
- True: Cho phép xuất hiện thanh trượt trong Listview (Khi số ListViewItem
nhiều và vượt qua chiều cao của ListView)
- False: Ngược lại
Sorting Sắp xếp giá trị các hàng (ListViewItem) trong ListView (Chỉ có hiệu lực nếu
thuộc tính View là Detail). Thuộc tính này nhận một trong các giá trị sau
• None: Không Sắp xếp
• Ascending: Sắp xếp tăng
• Descending: Sắp xếp giảm
SelectedItems Trả về danh sách các phần tử được chọn (bôi đen)
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
CheckedItems Trả về danh sách các phần tử được check (tất nhiên thuộc tính CheckBoxes =
True)
View Các kiểu Hiển thị trên ListView. Thuộc tính View có thể nhận một số giá trị
sau:
• LargeIcon
• SmallIcon
• List
• Detail
• Title
→ Mặc định là: LargeIcon
3. Một số phương thức thường dùng
Tên Ý nghĩa
Clear Xóa tất cả ListView
RemoveAt Xóa bỏ một cột có chỉ số (ở vị trí) nào đó

………………………………
4. Một số sự kiện thường dùng
Tên Ý nghĩa
SelectedIndexChanged Xảy ra khi người sử dụng thay đổi phần tử được chọn trong ListView
ItemActivate Xảy ra khi chọn phần tử trên ListView
ItemChecked Khi Check vào biểu tượng Checkbox của mỗi phần tử trên điều khiển
ListView
5. Một số khái niệm liên quan đến ListView
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Hình 1: Minh họa về ListView
Hình 2: Cột trong ListView
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Hình 3: Khái niệm ColumnHeader
Hình 4: Khái niệm ListViewItem
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Hình 5: Khái niệm SubItems
Hình 6: Minh họa về Group
6. Minh họa ListView
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Giả sử chúng ta có một điều khiển ListView có tên là LV (thuộc tính Name=LV), và có
thuộc tính View=Detail.
Chúng ta minh họa ListView qua một số bước sau:
Bước 1: ListView khi chưa làm gì.
Bước 2: Thêm một cột vào ListView
LV.Columns.Add("Name",100,HorizontalAlignment.Left);
//Hoặc 3 câu lệnh dưới đây

//ColumnHeader ch = new ColumnHeader("clName");
//ch.Text = "Name";
//LV.Columns.Add(ch);
Bước 3: Thêm cột thứ 2 vào ListView
LV.Columns.Add("Size",100,HorizontalAlignment.Left);
//Hoặc 3 câu lệnh dưới đây
//ColumnHeader ch = new ColumnHeader("clSize");
//ch.Text = "Size";
//LV.Columns.Add(ch);
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Bước 4: Tạo hàng mới và Add các giá trị vào hàng mới đó
ListViewItem lvi;
lvi= new ListViewItem("TK4.doc");
lvi.SubItems.Add("30Kb");
LV.Items.Add(lvi);
////Hoặc sử dụng 3 câu lệnh sau
//string[] HangMoi = new string[] { "TK4.doc", "30Kb" };
//ListViewItem lvi = new ListViewItem(Them);
//LV.Items.Add(lvi);
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
7. Sử dụng điều khiển ListView qua một số Code
8. Giả sử chúng ta có một form có tên: frmListView. Trên đó có chứa một số điều khiển sau:
• Điều khiển ListView có tên listView1 (Chúng ta để tất cả các thuộc tính của listView1 với giá trị mặc định).
• Button btCheck: minh họa việc duyệt các hàng được check trên ListView
• Buttonbt RemoveAtColumns: Minh họa xóa một cột trong ListView
• Buttonbt RemoveAtItems: Minh họa xóa một hàng trong ListView

• Buttonbt ShowFile: Minh họa hiển thị tất cả các file trong một thư mục nên ListView
• Button btGroup: Minh họa về Group trong ListView
9.
10. Chúng ta sẽ minh họa sử dụng ListView qua sự kiện Click của các button trên.
11.
12. 7.1. Tạo các cột, hàng cho ListView bằng code
13. private void frmListView_Load(object sender, EventArgs e)
14. {
15. //Đặt một số thuộc tính cho điều khiển ListView1 bằng code
16. //Bạn chỉ có thể nhìn thấy các cột nếu đặt thuộc tính View=Detail
17. listView1.View = View.Details;
18. listView1.GridLines = true;
19. listView1.CheckBoxes = true;//Hiển thị checkbox: các bạn xem kết quả ở hinhg minh họa.
20.
21. //Thêm 4 cột vào Listview
22. //Có thể thêm cột vào ListView theo cách này
23. listView1.Columns.Add("Họ và tên", 100, HorizontalAlignment.Center);
24. listView1.Columns.Add("Quê quán", 100, HorizontalAlignment.Center);
25. listView1.Columns.Add("Lớp", 100, HorizontalAlignment.Center);
26.
27. //Cách 2: Có thể thêm vào theo cách này: Sử dụng ColumnHeader
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
28. ColumnHeader ch = new ColumnHeader("chNgaySinh");
29. ch.Text = "Ngày sinh";
30. ch.TextAlign = HorizontalAlignment.Center;
31. ch.Width = 100;
32. listView1.Columns.Add(ch);
33.
34. //Thêm hàng thứ nhất vào ListView

35. string[] Them = new string[] { "Nguyễn Văn Hải", "Hưng Yên", "TK4N1", "29-03-1987" };
36. ListViewItem lv = new ListViewItem(Them);
37. listView1.Items.Add(lv);
38.
39. //Thêm hàng thứ 2
40. string[] Them2 = new string[] { "Nguyễn Văn Hạnh", "Hà Nội", "TK4N1", "24-04-1987" };
41. ListViewItem lv2 = new ListViewItem(Them2);
42. listView1.Items.Add(lv2);
43.
44. //Thêm hàng thứ 3
45. string[] Them3 = new string[] { "Phạm Thị Hạnh", "Hải Dương", "TK4N1", "04-10-1988"};
46. ListViewItem lv3 = new ListViewItem(Them3);
47. listView1.Items.Add(lv3);
48.
49. //Thêm hàng thứ 4
50. string[] Them4 = new string[] { "Vũ Thị Hảo", "Bắc Ninh", "TK4N1", "25-12-1987" };
51. ListViewItem lv4 = new ListViewItem(Them4);
52. listView1.Items.Add(lv4);
53. }
54. → Sau khi chạy có hình như sau:
55.
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
56.
57.
58.
59. 7.2. Duyệt xem những hàng nào được Check
60. private void btCheck_Click(object sender, EventArgs e)
61. {
62. //Bạn phải tạo ra một Listview như mục 7.1 trước đã

63. MessageBox.Show("Tên các sinh viên được Check là","Check",MessageBoxButtons.OK);
64.
65. //Duyệt các phần tử được Check thông qua thuộc tính CheckedItems
66. foreach (ListViewItem lvi in listView1.CheckedItems)
67. {
68. //Lấy về phần tử thứ mấy (ô thứ mấy) của ListViewItem (của 1 hàng): sử dụng SubItems
69. //DataGridView <-> ListView
70. MessageBox.Show(lvi.SubItems[0].Text);
71. }
72. //Giờ thì bạn chạy và check thử vài hàng để thấy rõ kết quả
73. }
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
74.
75. 7.3. Xóa một Cột tại vị trí nào đó
76. private void btRemoveAtColumns_Click(object sender, EventArgs e)
77. {
78. //Chú ý: Tập các column trong Listview là một Collection nên có đầy đủ các phương thức của một Collection.
79. //Ví dụ: Xóa một cột ở vị trí nào đó
80. //Tất nhiên bạn phải tạo ra một listview với các giá trị như mục 7.1
81.
82. listView1.Columns.RemoveAt(1);
83.
84. //Giờ thì bạn chạy và nhấn vào Button này để thấy kết qủa để xem các kết quả
85. }
86.
87.
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
88. Hình 7.2: Columns ↔ Collection

89. 7.4. Xóa một hàng tại một vị trí nào đó
90. → Hoàn toàn tương tự như xóa một cột
91. private void btRemoveAtItems_Click(object sender, EventArgs e)
92. {
93. //Chú ý: Tập các Items trong Listview là một Collection nên có đầy đủ các phương thức của một Collection.
94. //Ví dụ: Xóa một cột ở vị trí nào đó (tất nhiên bạn phải tạo ra một listview với các giá trị như mục 7.1)
95.
96. listView1.Items.RemoveAt(1);
97.
98. //Giờ thì bạn chạy và nhấn vào Button này để xem các kết quả
99. }
100.
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
101.
102. Hình 7.4: Items ↔ Collection
103. 7.5. Duyệt tất cả các file trong một thư mục và hiển thị nên ListView
104. private void btShowFile_Click(object sender, EventArgs e)
105. {
106. //Listview (listView1) này hiển thị tất cả các File trong C:\WINDOWS
107. //Bạn có thể dùng hộp thoại FolderBrowserDialog để duyệt file trong thư mục bất kì mà bạn chọn
108. //Phương thức Clear xóa toán bộ Listview
109. listView1.Clear();
110.
111. //Chọn một số thuộc tính cho Listview thông qua mã lệnh
112. listView1.View = View.Details;
113. listView1.FullRowSelect = true;//Cho phép chọn cả hàng như hình kết quả dưới
114. listView1.GridLines = true;
115.
116. //Add các cột vào Listview bằng mã lệnh

117. //Mỗi file có các đặc tính của file: Tên, kích thước, kiểu file (ReadOnly, System...) nên chúng ta tạo ra các cột tương
ứng
118. listView1.Columns.Add("Number", 100, HorizontalAlignment.Left);
119. listView1.Columns.Add("Name", 300, HorizontalAlignment.Left);
120. listView1.Columns.Add("Size", 150, HorizontalAlignment.Left);
121. listView1.Columns.Add("Type", 100, HorizontalAlignment.Left);
122.
123. //Nên khai báo đổi tượng DirectoryInfo để duyệt file
124. //DirectoryInfo là một lớp nằm trong System.IO
125. DirectoryInfo dir = new DirectoryInfo(@"C:\WINDOWS");
126.
127. //Khai báo i để lấy về Số thứ tự file: 1, 2, 3....
128. int i = 0;
129.
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
130. //Khai báo một ListviewItem - Một Hàng
131. ListViewItem lvi;
132.
133. //Duyệt File ()
134. foreach (FileInfo f in dir.GetFiles("*.*"))
135. {
136. //Tăng giá trị i nên 1
137. i++;
138.
139. //Gán các thành phần cho lvi qua thuộc tính SubItems.Add
140. lvi = new ListViewItem(i.ToString());
141. lvi.SubItems.Add(f.Name);
142. lvi.SubItems.Add(f.Length.ToString());
143. lvi.SubItems.Add(f.Attributes.ToString());

144. //Sau khi đã gán phải Add vào Listview
145. listView1.Items.Add(lvi);
146. }
147. //Hết
148. }
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
149.
150.
151. Hình 7.5: Kết quả sau khi nhấn vào Button Show File
152. 7.6. làm việc với Group trong ListView
153. private void btGroup_Click(object sender, EventArgs e)
154. {
155. //Ý tưởng: Chúng ta muốn đưa tất cả các file có cùng thuộc tính vào một nhóm
156. //làm việc với nhóm các bạn chú ý đối tượng ListViewGroup
157. //Xóa Listview trướcđã
158. listView1.Clear();
159.
160. //Đặt một số thuộc tính bằng Code
161. listView1.View = View.Details;
162.
163. //Khai báo 3 nhóm
164. ListViewGroup gArchive;
165. ListViewGroup gSystem;
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
166. ListViewGroup gNormal;
167.
168. //Add các cột vào Listview bằng mã lệnh
169. listView1.Columns.Add("Number", 100, HorizontalAlignment.Left);

170. listView1.Columns.Add("Name", 300, HorizontalAlignment.Left);
171. listView1.Columns.Add("Size", 150, HorizontalAlignment.Left);
172. listView1.Columns.Add("Type", 100, HorizontalAlignment.Left);
173.
174. //Add 3 nhóm - Group vào Listview
175. gArchive = new ListViewGroup("Archive");
176. gSystem = new ListViewGroup("System");
177. gNormal = new ListViewGroup("Normal");
178. listView1.Groups.Add(gArchive);
179. listView1.Groups.Add(gSystem);
180. listView1.Groups.Add(gNormal);
181.
182. //Listview này hiển thị tất cả các File trong C:\WINDOWS
183. //Nên khai báo đổi tượng DirectoryInfo
184. DirectoryInfo dir = new DirectoryInfo(@"C:\WINDOWS");
185.
186. //Khai báo i để lấy về Số thứ tự file: 1, 2, 3....
187. int i = 0;
188. string ThuocTinhFile = "";
189.
190. //Khai báo một ListviewItem-Một Hàng
191. ListViewItem lvi;
192.
193. //Duyệt file và đưa vào Group các file cùng thuộc tính
194. foreach (FileInfo f in dir.GetFiles("*.*"))
195. {
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
196. i++;
197. //Gán các thành phần cho lvi qua thuộc tính SubItems.Add

198. lvi = new ListViewItem(i.ToString());
199. lvi.SubItems.Add(f.Name);
200. lvi.SubItems.Add(f.Length.ToString());
201. //Lấy về thuộc tính tập tin và xử lý
202. ThuocTinhFile = f.Attributes.ToString();
203. lvi.SubItems.Add(ThuocTinhFile);
204. //Nhóm tập tin Archive
205. if (ThuocTinhFile.StartsWith("Archive"))
206. gArchive.Items.Add(lvi);
207. //Nhóm tập tin Archive
208. if (ThuocTinhFile.StartsWith("System"))
209. gSystem.Items.Add(lvi);
210. //Nhóm tập tin Archive
211. if (ThuocTinhFile.StartsWith("Normal"))
212. gNormal.Items.Add(lvi);
213. //Sau khi đã gán phải Add vào Listview
214. listView1.Items.Add(lvi);
215. }
216. //Hết- Kết quả xem hình dưới
217. }
218.
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
219.
220.
221. Hình 7.6: Group
222.
223.
224.
225.

226.
227.
228. 7.7. Lấy về giá trị của một ô (SubItems) bất kì nào đó trên ListView (sự kiện listView1_ItemActivate)
229. Giả sử chúng ta có hình như sau:
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
230.
231.
232. Chúng ta muốn lấy thông tin về sinh viên “Phạm Thị Hạnh” bạn có thể sử dụng đoạn code sau:
233.
234. private void listView1_ItemActivate(object sender, EventArgs e)
235. {
236. ListViewItem lvi = listView1.FocusedItem;
237. MessageBox.Show(lvi.Text);//Lấy ra giá trị ô text đầu tiên
238.
239. //Lấy về cột thứ 1 - Cột Quê quán (Cột trông ListView có chỉ số bắt đầu = 0)
240. string Cot1 = lvi.SubItems[1].Text;
241. MessageBox.Show("Giá trị cột thứ 1: " + Cot1);
242.
243. //Lấy về cột thứ 2 - Cột Lớp
244. string Cot2 = lvi.SubItems[2].Text;
245. MessageBox.Show("Giá trị cột thứ 2: " + Cot2);
246. //Giờ thì bạn chạy và Click vào một hàng xem để xem kết quả
247. //Ứng dụng: Thường ứng dụng trong lập trình CSDL: Hiển hị tất cả các các thông tin (sinh viên chả hạn)
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
248. //nên ListView. khi người dùng chọn một hàng trên ListView thì hiển thị các giá trị tương ứng nên
249. //Các Textbox. khi đó bạn có thể chỉnh sửa các thông tin và Update vào CSDL....
250. //................
251. }

252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.

×