2009-07-20 23 views

Trả lời

56

Nếu bạn đang thêm các cột chính mình ... không thêm các cột mà bạn không muốn.

Nếu bạn có AutoCreateColumns kích hoạt, sau đó:

  • nếu nó là một mô hình dựa trên lớp, thêm [Browsable(false)] để tính bạn không muốn
  • hoặc thiết lập của .Visible cột false
  • hoặc chỉ cần xóa các cột mà bạn không muốn sau đó
+0

Một tùy chọn khác là đặt DataGridAutoGeneratingColumnEventArgs.Cancel thành true trong trình xử lý AutoGeneratingColumn. – Jeevaka

+2

Có, BrowsableAttribute! Đó là điều tôi đã tìm kiếm cả ngày. Cảm ơn. – Szybki

+0

@Szybki IIRC, cách duy nhất tôi phát hiện ra những gì nó trông là bằng cách nhìn vào phản xạ ... từ lưới, đến 'PropertyDescriptor', thông qua' PropertyInfo'. Nó không phải là hiển nhiên; p –

0

Từ câu hỏi của bạn, tôi sẽ tưởng tượng bạn không muốn hiển thị một số cột "" trong d atagridview? Nếu vậy, hãy sử dụng thuộc tính Cột để thêm và xóa bất kỳ cột được tạo tự động nào được tìm thấy trên nguồn dữ liệu mà bạn sử dụng để đính kèm vào lưới.

DataGridView theo mặc định sẽ tạo cột cho tất cả thuộc tính công khai trên đối tượng nguồn dữ liệu bên dưới. Vì vậy,

public class MyClass 
{ 
    private string _name; 

    public string Name 
    { 
     get{ return _name; } 
     set { _name = value; } 
    } 

    public string TestProperty 
    { 
     { get { return "Sample"; } 
    } 
} 

... 
[inside some form that contains your DataGridView class] 

MyClass c = new MyClass(); 

// setting the data source will generate a column for "Name" and "TestProperty" 
dataGridView1.DataSource = c; 

// to remove specific columns from the DataGridView 
// dataGridView1.Columns.Remove("TestProperty") 
Các vấn đề liên quan