2012-03-19 116 views
6

在我的Windows窗體上我有一個DataGridView組件,它綁定到一個BindingSource。 BindingSource是EntityFramework對象的對象數據源。DataGridView自動生成列

有時我的DataBridView中的列被更新。有時候所有的屬性都會添加爲列,但現在它也刪除了我所有的列。所以我失去了我所有的設置。

何時將列自動獲取添加?

(我用VS.NET 2010)

更新:

// 
// 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; } 

屬性沒有在設計展現出來,並且 「隱藏高級屬性」 未選中。

更新2: 當我更新我的實體框架模型時,將再次添加所有列。我只能在表單的構造函數中設置屬性。這非常煩人。

+0

將DataGridView的[AutoGenerateColumns](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.autogeneratecolumns.aspx)屬性設置爲false。 – 2012-03-19 10:11:37

+0

我在窗體構造函數中設置了AutoGenerateColumns = false,但仍然出現問題 – 2013-01-05 15:41:34

回答

4

我實際上不知道什麼時候發生這種情況,但我傾向於手動創建所有列。我在設計器中創建了列,並在我的代碼中將AutoGenerateColumns屬性設置爲false

+1

非常感謝。這就是我所做的,手動設計了柱子和尺寸。該屬性沒有出現在設計器中,但我現在將其設置在代碼中。 – Bojo 2012-03-19 10:14:01

+1

是的,我不知道爲什麼這個屬性不能在設計器中設置 - 這是因爲從Visual Studio 2005 ... – 2012-03-19 10:40:01

2

添加該代碼或更改您的DataGridView屬性AutoGenerateColumns

DataGridView1.AutoGenerateColumns=false; 
+1

請參閱我的問題的更新。我還無法回答問題。 – Bojo 2012-03-19 12:28:12

1

儘量離開第一個自動生成的列,並設置它的知名度假。 如果它沒有幫助,請嘗試使用Visible = false離開它們。 抱歉,糟糕的英語。

1

將AutoGenerateColumns屬性設置爲False,但請記住在數據綁定之前執行此操作。 例如: DataGridView1.AutoGenerateColumns=false; DataGridView1.DataSource=getData();

默認情況下,它被設置爲True。