2009-07-20 109 views
7

作爲一個類似於this question的問題,我還有一個應用程序和一個DataGridView。我想定位行,使得特定的行位於列表的可見部分的底部。如何將DataGridView定位到特定行(使所選行位於底部)?

這是爲了響應按鈕的點擊而向下移動一行。我想保持在我正在移動的行上的選擇(我已經有這部分工作)。如果有很多行,選定的行可能會移動到可見區域下方。我想向下滾動,直到它位於可見區域的底部。

似乎沒有FirstDisplayedScrollingRowIndex的LastDisplayedScrollingRowIndex伴侶。

任何想法?謝謝。

回答

9

正如我自己的猜測,我想我需要使用FirstDisplayedScrollingRowIndex和DataGridView中可見的行數來計算新的FirstDisplayedScrollingRowIndex。也許我只需要找出NumberOfVisibleRows屬性被調用的是什麼?

找到它。 DisplayedRowCount:

if (dataGridView.FirstDisplayedScrollingRowIndex + dataGridView.DisplayedRowCount(false) <= selectedRowIndex) 
{ 
    dataGridView.FirstDisplayedScrollingRowIndex = 
     selectedRowIndex - dataGridView.DisplayedRowCount(false) + 1; 
} 

代碼測試和工作在我自己的項目。

5

DisplayedRowCount方法會告訴你屏幕上顯示的行數。將參數值設置爲true以包含部分行。

var displayedRows = myDataGridView.DisplayedRowCount(false); 
+0

謝謝。你會得到一個upvote(即使我在看到你的答案之前自己找到了它),但是我將自己的答案設置爲接受,因爲它有一個工作代碼樣本。 – 2009-07-20 19:38:41