2010-08-22 44 views

Trả lời

13

Tôi sẽ chỉ xử lý góc giao diện người dùng. Bạn có thể ẩn nó bằng cách thiết lập độ rộng cột để 0. Ví dụ, nếu ID được ràng buộc với cột thứ 2:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     listView1.Columns[1].Width = 0; 
     listView1.ColumnWidthChanging += listView1_ColumnWidthChanging; 
    } 

    private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) { 
     if (e.ColumnIndex == 1) { 
      e.NewWidth = 0; 
      e.Cancel = true; 
     } 
    } 
} 

Đó không phải là khá lý tưởng, người dùng có thể nhận được confuzzled bởi con trỏ 'splitter' rằng chương trình khi cô ấy hơi xa về phía bên phải của bộ chia cột. Điều đó rất khó sửa.

2

Làm thế nào để ẩn/hiển thị các cột listview

C#, .NET framework 3.5.

Thật dễ dàng để ẩn và hiển thị cột danh sách xem, nếu bạn sử dụng chế độ xem danh sách trong "chế độ ảo". Trong "chế độ ảo", bạn có trách nhiệm điền vào listviewitems bằng dữ liệu. Điều này làm cho nó có thể đưa dữ liệu chính xác vào cột đúng.

Để tôi minh họa:

Tạo biểu mẫu và thêm điều khiển danh sách và điều khiển nút. Thêm 3 cột vào điều khiển listview. Đặt thuộc tính "xem" của kiểm soát chế độ xem danh sách thành "Chi tiết". Đặt thuộc tính “VirtualMode” của điều khiển listview thành “True”. Đặt thuộc tính “VirtualListSize” của điều khiển danh sách xem thành “100”.

Thêm một bool mẫu:

private bool mblnShow = true; 

Thêm sự kiện “RetrieveVirtualItem” cho sự kiểm soát listview, và thêm đoạn mã sau:

ListViewItem objListViewItem = new ListViewItem(); 
objListViewItem.Text = "Item index: " + e.ItemIndex.ToString(); 
if (mblnShow) objListViewItem.SubItems.Add("second column: " +  DateTime.Now.Millisecond.ToString()); 
objListViewItem.SubItems.Add("third column: " + DateTime.Now.Millisecond.ToString()); 
e.Item = objListViewItem; 

Thêm “Nhấp vào” sự kiện cho kiểm soát nút và thêm mã sau:

mblnShow = !mblnShow; 
if (mblnShow && !this.listView1.Columns.Contains(this.columnHeader2)) this.listView1.Columns.Insert(1, this.columnHeader2); 
else if (!mblnShow && this.listView1.Columns.Contains(this.columnHeader2)) 
    this.listView1.Columns.Remove(this.columnHeader2); 

Chạy ứng dụng và nhấn thứ nút e để hiển thị và ẩn cột thứ hai.

Xin lưu ý rằng việc chạy chế độ xem danh sách ở chế độ ảo sẽ gây ra lỗi nếu bạn đặt dữ liệu trong bộ sưu tập các mục. Có nhiều thông tin về chế độ ảo hơn, vì vậy tôi khuyên bạn nên đọc nó trước khi sử dụng nó.

Các vấn đề liên quan