2012-07-23 50 views
0

我有一個DataGridView與我從SQL Server提取的數據。 我永遠不知道我會有多少記錄,所以我需要網格對提取的行數是可變的。DataGridView變量格式化

例:

enter image description here

  • 圖片1:我有什麼權利了。 1行被提取,所以我有一個很大的深灰色空間,其中可能是數據。
  • 圖2:我想要的只有一行提取。網格根據行數自動調整大小。
  • 圖片3:我想多行有什麼。

此外,我想刪除總是添加的空行,添加一個新行不會是一個選項。

這可能嗎?

+0

@Nathan如果你把閱讀完整的問題,而不僅僅是最後,你會看到,這是不一樣的question..at所有 – phadaphunk 2012-07-23 16:14:51

+0

我道歉的時間。 .. – Nathan 2012-07-23 16:16:56

+0

@Nathan Np只是指出,所以我可以得到我正在尋找的答案, – phadaphunk 2012-07-23 16:17:34

回答

1

您正在尋找DataSet.Datatable.Rows.Count這會告訴你,總行從SQL Server返回

更新這不能使用DataGridView控件的任何屬性來實現

+0

當我得到它們時,我的行數是多少?我怎麼知道,如果我有6行顯示我只有6行而不是6行+一個大的灰色空間?在此先感謝 – phadaphunk 2012-07-23 16:23:04

+0

@PhaDaPhunk看起來像這個問題已被問及之前,他們是在控制本身沒有解決方案,請看看這篇文章http://stackoverflow.com/questions/2162756/datagridview-remove-unused-space – HatSoft 2012-07-23 16:53:45

+0

謝謝很多我會停止尋找一種方法來做到這一點。 – phadaphunk 2012-07-23 16:56:32

0

您需要設置AutoSizeColumns屬性:

datagridview.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 
datagridview.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); 

假設你從DataSet填充網格,您可以使用該功能防止è被添加MPTY行:

foreach (DataRow row in dataset.Tables[0].Rows) 
{ 
     if (!string.IsNullOrWhiteSpace(row[0].ToString())) 
     { 
      //add row 
     } 
} 
+0

我正在使用DataTable作爲數據源。我改變了兩個Porperties,但我仍然得到了很大的灰色空間...... – phadaphunk 2012-07-23 16:22:00

+0

你在哪裏放置代碼來設置這些屬性?你會在網格的底部得到一個灰色區域,直到你的查詢返回足夠的結果來填充它。否則,你可以調整它的高度? – dtsg 2012-07-23 16:24:48

+0

是的,我知道這就是爲什麼我問這個問題。有沒有辦法不等待足夠的行,並使高度變量代替.. 我沒有編碼它我改變了設計器屬性面板中的那些屬性 – phadaphunk 2012-07-23 16:29:10