2010-08-02 2 views
0

하나의 열에 사용자가 공백을 추가하여 정렬해야하는 데이터가있는 DataGridView가 있습니다. 예를 들어, 처음 두 행은 다음을 포함 할 수 있습니다.편집 모드에서 다음 셀로 이동하여 VB.NET DataGridView의 편집 모드를 유지 하시겠습니까?

kumbu 
kuimbiu 

그리고 사용자는 공백을 추가하여 일치하는 문자를 정렬 할 수 있어야합니다. 이런 식으로 뭔가 :

ku mb u 
kuimbiu 

이제 DataGridView에로, 사용자가 정상 세포에서 편집 모드로 들어갑니다 공백을 추가해야 할하기 위해, 공격은 입력 아래 셀에서 편집 모드를 다시 입력하고, 공백을 추가하십시오. 사용자는 상단 셀의 수정 모드에서 편집 모드를 유지하면서 아래쪽 화살표를 누르고 두 번째 셀로 이동하여 클릭 또는 F2 히트를 저장하고 싶습니다.

이렇게하는 좋은 방법이 있습니까? 아래쪽 화살표 키 누름을 트래핑하고, 편집 모드를 종료하고, 셀을 전진시키고, 그리드의 BeginEdit 메서드로 편집 모드로 들어가려고했지만, 이것은 내가 원하는 것을하지 않습니다.

아이디어가 있으십니까?

답변

1

셀을 떠날 때 클래스 변수에 편집 상태가 캡처됩니다. 사용자가 아래로 누르거나 들어가면 이전 셀이 편집 모드에 있었던 경우에만 다음 셀이 편집 모드로 시작됩니다. 열을 기반으로하려면 논리를 추가 할 수 있습니다.

Private blnEditMode As Boolean = False 
Private Sub dgv_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellEnter 
    If blnEditMode Then 
     dgv.BeginEdit(False) 
    End If 
End Sub 

Private Sub dgv_CellLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellLeave 
    blnEditMode = dgv.IsCurrentCellInEditMode 
End Sub 
관련 문제