2012-08-11 53 views
0

我在WinForms中有一個DataGridView。我以編程方式設置使用選定的行:設置DataGridView的選定行的問題:與AutoResizeRows衝突

int index = CompoundListSource.Find("ID", previousAzeotrope.Compound1.ID); 
CompoundListSource.Position = index; 

對於背景:

BindingSource CompoundListSource = new BindingSource(); 
CompoundListSource.DataSource = [A DataTable]; 

選擇工作正常。但是,我的DataGridView相當大,所以我通過偵聽Scroll事件來計算行高。當DataGridView的滾動,我呼籲:

GridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders) 

由於這種大小調整的結果,所選擇的行往往不再顯示的行中。

這不是一個嚴重的問題,但它是一個滋擾。這裏有人知道如何解決這個問題嗎?

回答

2

您可以設置在DataGridView的CurrentCell,以確保特定的細胞是在視圖:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcell.aspx

您還可以設置:

DataGridView.FirstDisplayedScrollingRowIndex = <row index>; 

然而,這可能不會在滾動工作處理程序,因爲它實際上會引發滾動事件本身!我會給他們一個嘗試。

+0

設置'DataGridView.FirstDisplayedScrollingRowIndex'完全適合我。謝謝! – 2012-08-12 23:19:17