2011-05-05 46 views
13

我有一個DataGridView綁定到數據庫表。 DataGridView不可編輯,有一些文本字段可以在其中編輯數據,這些字段由按鈕控制。 我有下面的代碼NEWROW按鈕:如何選擇並滾動到Datagridview中的新行?

 dataGridView1.AllowUserToAddRows = true; 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      if (row.Selected) 
      { row.Selected = false; } 
     } 
     dataGridView1.Rows[dataGridView1.NewRowIndex].Selected = true; 

笏我需要的是:

  • 在DataGridView應滾動到底部(其中NEWROW是)
  • 的NEWROW應側重,使文本框顯示新的(空)行(內容)

我已經試過:

 bindSourceGS.Position = dataGridView1.NewRowIndex; 

但它不會選擇datagridview的newRow。 我想使用datagridview的newRow,因爲當用戶按下取消按鈕時,我不必刪除數據集中的行,並且datagridview.Rows [i]具有IsNewRow屬性。

+0

不要混合使用DataGrid和DataGridView,它們是不同的控件。我編輯了你的問題,說清楚你正在使用DataGridView。 – 2011-05-05 13:35:24

回答

12

如果其WinForm的那麼你可以使用這個

dataGridView1.FirstDisplayedScrollingRowIndex 

,並設置datagridview.CurrentCell到新行單元格地址。

希望這有助於

+0

是的,它是Winform,你的建議都可以很好地工作。謝謝! – RainerM 2011-05-05 14:13:01

0

注:FirstDisplayedScrollingRowIndex成功,如果你有混hieght行,你需要確保的行模板,高度是在最後一排的高度至少一樣大。這是一個問題,因爲我發現無法設置任何高於行模板高度的行高。

0

我一直在研究這個問題,發現只要AutoSizeRowsMode屬性沒有設置爲DisplayedCells,設置dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.count-1就能正常工作。

如果您在設置dataGridView1.FirstDisplayedScrollingRowIndex=dataGridView1.Rows.Count -1時出現問題,並且網格未滾動到底部,請嘗試將AutosizeRowsMode屬性設置爲AllCells

相關問題