2013-10-16 74 views
0

我有一個datagridview表使用數據表作爲數據源填充。 datagridview已被設置爲edittable,我可以更改單元格的值,但是當然,這些更改不會反映在原始數據庫表中,因爲網格視圖不是直接綁定的。是否有可能以這樣的方式獲得datagridview,當我按下enter鍵(編輯單元格時)時,焦點轉移到右側的單元格(而不是選擇下面的行)?這將需要繼續下去,直到我到達最右邊的列,在這種情況下,下面的編輯單元格將成爲下一行中的第一個單元格。更改datagridview上的編輯單元格輸入(vb.net)

在此先感謝!

回答

2

試試這個:

  1. 定義一個標誌flag_edited當編輯時將會引發(CellEndEdit事件)

  2. 定義一個函數changeSelectionToNextCell,將撤消默認行爲的選擇變化(SelectionChanged事件)

以下是樣本:

Private flag_edited As Boolean 

Private Sub DataGridView1_CellEndEdit(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit 
    flag_edited = True 
End Sub 

Private Sub DataGridView1_SelectionChanged(sender As Object, e As System.EventArgs) Handles DataGridView1.SelectionChanged 
    changeSelectionToNextCell() 
End Sub 

Private Sub changeSelectionToNextCell() 
    If flag_edited Then 
     flag_edited = False 
     If DataGridView1.CurrentCell IsNot Nothing Then 
      Dim row_index As Integer = DataGridView1.CurrentCell.RowIndex - 1 
      Dim col_index As Integer = DataGridView1.CurrentCell.ColumnIndex + 1 

      If col_index = DataGridView1.ColumnCount Then 
       col_index = 0 
       row_index += 1 
      End If 

      DataGridView1.CurrentCell = DataGridView1.Rows(row_index).Cells(col_index) 
     End If 
    End If 
End Sub 
+0

謝謝!這是我正在尋找的。 – Osprey

相關問題