2011-02-25 70 views
1

在VS2010程序中,我有一個帶有自定義列(不可編輯)的DataGridView。當我啓動GUI時,按照我放置的順序顯示列;問題是當程序開始填充它們時,列以某種奇怪的方式重新排序,我無法弄清楚爲什麼(我禁用手動重新排序和調整大小選項)。 如何強制列保持我決定的順序?DataGridView在填充數據時對列重新排序

+0

「奇怪」重新排序可能與您的基礎數據表相同。如果是這種情況,該控件可能會自動生成默認列並替換您的自定義列。 – Suncat2000 2011-03-08 20:17:44

回答

3

如果AutoGenerateColumns設置爲true,則在DataGridView的屬性中將其設置爲false。它是如何工作的呢?

+0

在DataGridView屬性中沒有名爲「AutoGenerateColumns」的字段;順便說一下,該程序不添加任何列,它只是重新排列我添加到它的那些列。 – kaharas 2011-02-25 20:01:54

+0

「AutoGenerateColumns」屬性在窗體設計器中不可見,但確實作爲類成員存在。您可以在代碼中明確禁用它。 InitializeComponent()通常是一個好地方,但是在繪製控件之前的任何時候都應該工作。 繼承DataGridView控件的另一個問題是,如果基本控件沒有定義列,AutoGenerateColumns仍然爲true;如果您在子類控件中指定了列,那麼當控件自動從數據源生成時(如果不禁用它的話),定義會被破壞。 – Suncat2000 2011-03-08 20:14:26

0

檢查您的DTG是否自動創建collumns。

0
+0

歡迎來到StackOverflow,並感謝您花時間回答問題。不幸的是,你的答案只包括一個鏈接,因爲鏈接可能會失效或死亡,因此SO不鼓勵。請編輯您的文章,以包含您認爲對回答問題最有幫助的內容,並將鏈接保留爲任何想要進一步信息的人員的參考。 – Dirk 2014-03-02 16:36:48

0

嘗試設置網格列,如果您的網格conatins的DisplayIndex升序排列,即只有1,2,3,4等 PROPERT萬一可見和不可見列,您還必須爲不可見列設置網格DisplayIndex。