2009-05-04 133 views
0

我有一个非常简单的形式使用紧凑的框架。我有两个搜索字段,一个搜索按钮和一个数据网格。该按钮在表单上设置DataGrid的DataSource。我知道我可以在DataGrid上设置高度和宽度,但我不希望用户必须使用DataGrid上的滚动条,因为它有几百条记录。我只想让用户使用窗体上的滚动条来滚动。我该如何做到这一点?Datagrid在Windows中滚动移动滚动条的移动方法?

回答

0

我假设你想要的行为是一个垂直滚动条,跨越窗体的总高度来浏览DataGrid的记录。这DataGrid不占用窗体上的所有空间。

您可以将VScrollBar添加到表单的一侧,并将其最大值设置为您的DataGrid的总行数。然后附加到滚动条的ValueChanged事件,并操纵DataGrid的选定行。这实际上将模仿DataGrid的滚动行为。

棘手的部分是隐藏DataGrid的滚动条,因为没有财产来隐藏它。您可以扩展其宽度,以便滚动条脱离屏幕,但请记住将窗体的AutoScroll属性设置为false,以便它不呈现将显示DataGrid污泥的水平滚动条。

根据您的应用程序,您可能需要考虑使用ListView并将View属性设置为DetailsListView在紧凑框架中操作起来更容易,并且可能更适合您的应用程序。如果您愿意,您仍然可以使用上述相同的VScrollBar技术并将其应用于ListView

+0

你的假设是有点不对劲。我想使用窗体自动滚动并隐藏DataGrids滚动条。 DataGrid带回了大约700多条记录,因此占用了比表单整个可见区域更多的记录。也许我需要找出数据网格中有多少行,并查看像素的大小,并将datagrids height属性设置为每行*像素。任何想法(我不知道如何找出有多少行) – 2009-05-05 16:04:21

0

您必须从DataSource获取rowcount。铸像封闭的例子来产生行计数:(rsMissingItems是SqlCEResultSet对象)

Dim intRecCnt As Int32 = DirectCast(rsMissingItems.ResultSetView, ICollection).Count