2009-05-04 151 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