2012-07-23 63 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