MỘT SỐ ĐIỀU KHIỂN KHÁC
7. Sử dụng điều khiển ListView qua một số Code
7.3. Xóa một Cột tại vị trí nào đó
private void btRemoveAtColumns_Click(object sender, EventArgs e) {
//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.
//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
listView1.Columns.RemoveAt(1);
//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ả }
Hình 7.2: Columns ↔ Collection 7.4. Xóa một hàng tại một vị trí nào đó
→ Hoàn toàn tương tự như xóa một cột
private void btRemoveAtItems_Click(object sender, EventArgs e) {
//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.
//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) listView1.Items.RemoveAt(1);
//Giờ thì bạn chạy và nhấn vào Button này để xem các kết quả }
Hình 7.4: Items ↔ Collection 7.5. Duyệt tất cả các file trong một thư mục và hiển thị nên ListView
private void btShowFile_Click(object sender, EventArgs e) {
//Listview (listView1) này hiển thị tất cả các File trong C:\WINDOWS
//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 //Phương thức Clear xóa toán bộ Listview
listView1.Clear();
//Chọn một số thuộc tính cho Listview thông qua mã lệnh listView1.View = View.Details;
listView1.FullRowSelect = true;//Cho phép chọn cả hàng như hình kết quả dưới listView1.GridLines = true;
//Add các cột vào Listview bằng mã lệnh
//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 listView1.Columns.Add("Number", 100, HorizontalAlignment.Left);
listView1.Columns.Add("Name", 300, HorizontalAlignment.Left);
listView1.Columns.Add("Size", 150, HorizontalAlignment.Left);
listView1.Columns.Add("Type", 100, HorizontalAlignment.Left);
//Nên khai báo đổi tượng DirectoryInfo để duyệt file //DirectoryInfo là một lớp nằm trong System.IO
DirectoryInfo dir = new DirectoryInfo(@"C:\WINDOWS");
//Khai báo i để lấy về Số thứ tự file: 1, 2, 3....
int i = 0;
//Khai báo một ListviewItem - Một Hàng ListViewItem lvi;
//Duyệt File ()
foreach (FileInfo f in dir.GetFiles("*.*"))
{
//Tăng giá trị i nên 1 i++;
//Gán các thành phần cho lvi qua thuộc tính SubItems.Add lvi = new ListViewItem(i.ToString());
lvi.SubItems.Add(f.Name);
lvi.SubItems.Add(f.Length.ToString());
lvi.SubItems.Add(f.Attributes.ToString());
//Sau khi đã gán phải Add vào Listview listView1.Items.Add(lvi);
} //Hết }
Hình 7.5: Kết quả sau khi nhấn vào Button Show File 7.6. làm việc với Group trong ListView
private void btGroup_Click(object sender, EventArgs e) {
//Ý 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 //làm việc với nhóm các bạn chú ý đối tượng ListViewGroup
//Xóa Listview trướcđã listView1.Clear();
//Đặt một số thuộc tính bằng Code listView1.View = View.Details;
//Khai báo 3 nhóm ListViewGroup gArchive;
ListViewGroup gSystem;
ListViewGroup gNormal;
//Add các cột vào Listview bằng mã lệnh
listView1.Columns.Add("Number", 100, HorizontalAlignment.Left);
listView1.Columns.Add("Name", 300, HorizontalAlignment.Left);
listView1.Columns.Add("Size", 150, HorizontalAlignment.Left);
listView1.Columns.Add("Type", 100, HorizontalAlignment.Left);
//Add 3 nhóm - Group vào Listview
gArchive = new ListViewGroup("Archive");
gSystem = new ListViewGroup("System");
gNormal = new ListViewGroup("Normal");
listView1.Groups.Add(gArchive);
listView1.Groups.Add(gSystem);
listView1.Groups.Add(gNormal);
//Listview này hiển thị tất cả các File trong C:\WINDOWS //Nên khai báo đổi tượng DirectoryInfo
DirectoryInfo dir = new DirectoryInfo(@"C:\WINDOWS");
//Khai báo i để lấy về Số thứ tự file: 1, 2, 3....
int i = 0;
string ThuocTinhFile = "";
//Khai báo một ListviewItem-Một Hàng ListViewItem lvi;
//Duyệt file và đưa vào Group các file cùng thuộc tính foreach (FileInfo f in dir.GetFiles("*.*"))
{ i++;
//Gán các thành phần cho lvi qua thuộc tính SubItems.Add lvi = new ListViewItem(i.ToString());
lvi.SubItems.Add(f.Name);
lvi.SubItems.Add(f.Length.ToString());
//Lấy về thuộc tính tập tin và xử lý ThuocTinhFile = f.Attributes.ToString();
lvi.SubItems.Add(ThuocTinhFile);
//Nhóm tập tin Archive
if (ThuocTinhFile.StartsWith("Archive")) gArchive.Items.Add(lvi);
//Nhóm tập tin Archive
if (ThuocTinhFile.StartsWith("System")) gSystem.Items.Add(lvi);
//Nhóm tập tin Archive
if (ThuocTinhFile.StartsWith("Normal")) gNormal.Items.Add(lvi);
//Sau khi đã gán phải Add vào Listview listView1.Items.Add(lvi);
}
//Hết- Kết quả xem hình dưới }
Hình 7.6: Group
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) Giả sử chúng ta có hình như sau:
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:
private void listView1_ItemActivate(object sender, EventArgs e) {
ListViewItem lvi = listView1.FocusedItem;
MessageBox.Show(lvi.Text);//Lấy ra giá trị ô text đầu tiên
//Lấy về cột thứ 1 - Cột Quê quán (Cột trông ListView có chỉ số bắt đầu = 0) string Cot1 = lvi.SubItems[1].Text;
MessageBox.Show("Giá trị cột thứ 1: " + Cot1);
//Lấy về cột thứ 2 - Cột Lớp
string Cot2 = lvi.SubItems[2].Text;
MessageBox.Show("Giá trị cột thứ 2: " + Cot2);
//Giờ thì bạn chạy và Click vào một hàng xem để xem kết quả
//Ứ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) //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
//Các Textbox. khi đó bạn có thể chỉnh sửa các thông tin và Update vào CSDL....
//...
}