2009-05-13 34 views

Trả lời

22

Phương pháp đơn giản:

if (dgv.Columns.Contains("Address") && dgv.Columns["Address"].Visible) 
{ 
    // do stuff 
} 
+0

Trong trường hợp bạn đang tự hỏi như tôi là, [DataGridView.Columns.Contains là case-insensitive] (https://msdn.microsoft.com/en-us/library/system.windows .forms.datagridviewcolumn.name (v = vs.110) .aspx). – downwitch

1

Bạn có thể kiểm tra khả năng hiển thị cột bằng cách sử dụng Visible tài sản:

if (column.Visible) 
{ 
    // Do Stuff 
} 

Điều này sẽ cho bạn biết nếu các cột sẽ được hiển thị.

Bạn có thể lấy cột thông qua cuộc gọi này nếu bạn biết chỉ số:

DataColumn column = dGV.Columns[index]; 

Nếu cột được hiển thị nhưng tắt màn hình tôi không biết làm thế nào bạn muốn kiểm tra cho điều đó.

1

Lặp qua các cột, kiểm tra tiêu đề (Tôi cho rằng đó là những gì bạn đang tìm kiếm) và thuộc tính Có thể nhìn thấy.

5

Thứ nhất xác minh nếu cột tồn tại và sau đó bạn xác minh tầm nhìn của nó.

Việc gọi thuộc tính của cột cho cột không tồn tại sẽ bị lỗi.

if (dgv.Columns.Contains("Address") 
{ 
    if (dgv.Columns["Address"].Visible) 
    { 

    } 
} 
0
var dataGridViewColumn = dgv.Columns["Address"]; 

if (dataGridViewColumn != null && dataGridViewColumn.Visible) 
    { 
        //do stuff 
    } 
+0

Trong khi đoạn mã này có thể giải quyết được vấn đề, nó không giải thích tại sao hoặc cách nó trả lời câu hỏi. Vui lòng [đưa ra giải thích cho mã của bạn] (// meta.stackexchange.com/q/114762/269535), vì điều đó thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. ** Cờ/người đánh giá: ** [Đối với các câu trả lời chỉ có mã như câu trả lời này, ghi chú, đừng xóa!] (// meta.stackoverflow.com/a/260413/2747593) – Patrick

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