2012-03-19 47 views
6

Trên Biểu mẫu Windows của tôi, tôi có một thành phần DataGridView, được liên kết với một BindingSource. BindingSource là nguồn dữ liệu đối tượng cho đối tượng EntityFramework.DataGridView tự động tạo cột

Một số lần các cột trong DataBridView của tôi được gia hạn. Đôi khi tất cả các thuộc tính được thêm dưới dạng cột, nhưng bây giờ nó cũng loại bỏ tất cả các cột của tôi. Vì vậy, tôi đã mất tất cả các thiết lập của tôi.

Khi nào các cột được tự động thêm?

(Tôi đang sử dụng VS.NET 2010)

Cập nhật:

// 
// Summary: 
//  Gets or sets a value indicating whether columns are created automatically 
//  when the System.Windows.Forms.DataGridView.DataSource or System.Windows.Forms.DataGridView.DataMember 
//  properties are set. 
// 
// Returns: 
//  true if the columns should be created automatically; otherwise, false. The 
//  default is true. 
[Browsable(false)] 
[EditorBrowsable(EditorBrowsableState.Advanced)] 
[DefaultValue(true)] 
public bool AutoGenerateColumns { get; set; } 

Khách sạn không hiển thị trong thiết kế, và "ẩn thuộc tính nâng cao" không được chọn.

Cập nhật 2: Khi tôi cập nhật mô hình khung thực thể của mình, tất cả các cột được thêm lại. Tôi chỉ có thể đặt thuộc tính trong hàm tạo của biểu mẫu. Điều này rất khó chịu.

+0

Đặt [AutoGenerateColumns] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.autogeneratecolumns.aspx) thuộc tính của DataGridView thành sai. –

+0

Tôi đang đặt AutoGenerateColumns = false trong hàm tạo nhưng vẫn gặp sự cố –

Trả lời

4

Tôi thực sự không biết khi nào điều này xảy ra, nhưng tôi có xu hướng tạo tất cả các cột theo cách thủ công. Tôi tạo các cột trong trình thiết kế và đặt thuộc tính AutoGenerateColumns thành false trong mã của tôi.

+1

Cảm ơn rất nhiều. Đó là những gì tôi đã làm, thiết kế thủ công các cột và kích cỡ. Các tài sản không xuất hiện trong các nhà thiết kế, nhưng tôi đặt nó trong mã ngay bây giờ. – Bojo

+1

Vâng, tôi không biết tại sao tài sản này không thể được thiết lập trong nhà thiết kế - nó được như thế kể từ khi Visual Studio 2005 ... –

2

Thêm mã này hoặc thay đổi của bạn DataGridView hữu AutoGenerateColumns false

DataGridView1.AutoGenerateColumns=false; 
+1

Xem cập nhật câu hỏi của tôi. Tôi chưa thể trả lời câu hỏi. – Bojo

1

Cố gắng rời khỏi cột đầu tiên của tự động tạo và đặt nó tầm nhìn sai. Nếu không giúp, hãy thử để lại tất cả những thứ đó với Hiển thị = sai. Xin lỗi vì tiếng Anh xấu.

1

Đặt thuộc tính AutoGenerateColumns thành False nhưng hãy nhớ thực hiện ngay trước khi dữ liệu. ví dụ: DataGridView1.AutoGenerateColumns=false; DataGridView1.DataSource=getData();

Theo mặc định, giá trị được đặt thành True.

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