2012-02-23 73 views
0

我想讓DataGridView的第一行更大。我試圖使用OnScroll,但它並不總是打上標記。是否有可以替代OnScroll的更改行第一個索引事件?DataGridView第一列總是比較大

private int lastRow = -1; 
private void dgvN_Scroll(object sender, ScrollEventArgs e) 
{ 
    int firstVisibleRow = dgvN.HitTest(dgvN.RowTemplate.MinimumHeight, 
     dgvN.RowHeadersWidth).RowIndex; 

    if (lastRow != firstVisibleRow && firstVisibleRow != -1) 
    { 
     dgvN.Rows[firstVisibleRow].Height = 50; 
     if (lastRow != -1) 
     { 
      dgvN.Rows[lastRow].Height = 20; 
     } 
     lastRow = firstVisibleRow; 
    } 
} 
+0

因此,你想要始終使第一個可見行更大?所以滾動後,網格頂部的新行增加了高度?我想不出一個好辦法來做到這一點,所以我可以問你爲什麼需要它,我可以想出一個好的替代方法? – 2012-02-23 12:17:48

+0

嗯......實際上它總是允許第一項被突出顯示,因爲它包含多行文本。 – Nap 2012-02-23 13:00:49

回答

2

變化

int firstVisibleRow = dgvN.HitTest(dgvN.RowTemplate.MinimumHeight, 
    dgvN.RowHeadersWidth).RowIndex; 

int firstVisibleRow = dgvN.FirstDisplayedScrollingRowIndex; 

(至少,我認爲這是基於怎樣當粘貼到我的測試項目,您的評論你的代碼的表現,你想要的行爲關於「它並不總是達標」)

+0

哇,我一直使用DGV幾乎沒有注意到這個屬性! +1 – 2012-02-23 14:20:52

+0

看起來我發現了這個網站上的財產'09年7月http://stackoverflow.com/questions/1155418/how-do-i-position-a-datagridview-to-a-specific-row-所以,選擇行是;) – 2012-02-23 14:26:12

+0

感謝它的工作,但我想我應該與DataBound事件一起執行該過程,以防項目增加和減少。 – Nap 2012-02-24 00:25:54