양식의 데이터 소스에 바인딩 된 표준 DataGridView가있는 Windows Form VS2010 .NET 4 프로젝트가 있습니다.WinForms의 DataGridView 편집 셀
그리드에는 클릭 한 캐릭터에서 점으로 편집 할 텍스트 컬럼이 있습니다. 조정하려는 문자를 클릭하면 일반 텍스트 상자/편집기와 같습니다. 가능한 경우 UP/DOWN 키를 사용하여 행 사이를 이동하고 싶지만 커서가 전체 텍스트를 선택하지 않고 동일한 열에서 같은 문자 위치로 이동하게하십시오.
나는 몇 가지 시도 :
DataGridView1.ClearSelection()를
는 BeginEdit는 또 다른 의미의 텍스트의 말에 커서를두고
DataGridView1.BeginEdit (거짓) 클릭하여 편집 할 문자 위치를 가리 킵니다.
DevExpress와 같은 상업용 그리드는 한 번의 클릭으로 정확한 문자 위치를 클릭 할 수 있지만 비용이 많이 드는 편집을 기본으로합니다.
나는 DataGridView1_EditingControlShowing 이벤트
If TypeOf e.Control Is System.Windows.Forms.DataGridViewTextBoxEditingControl Then
Dim tb As TextBox = e.Control
tb.SelectionStart = 5
tb.SelectionLength = 5
End If
에 시도하지만 아무것도하지 않습니다.
조정이 필요한 문자 위치로 이동하기 위해 두 번 또는 세 번의 클릭을 제거하려고합니다.
나는 Custom DataColumn을 아직 보지 않았다.
의견을 보내 주시면 대단히 감사하겠습니다.
우수 답변이 주 비트를 않습니다, 나는이 검색되었다 연령대 : 나는 당신이 CellEnter 이벤트 핸들러 내에서 작동 할 필요가 지정한 selectionStart 및 SelectionLength 설정했다 발견 그리고 무엇
. 그것은 위로 조금을하지 않는다, 그러나 나는 그것을 고칠 수 있을지도 모르다. 이전 셀을 가져 오는 것에 대한 아이디어. –
편집 콘트롤 (편집 컨트롤 표시에서)을 폼 수준의 개인 변수에 놓은 다음 편집 컨트롤 휴가 이벤트 중에 SelectionStart 값을 폼 수준의 int 변수에 배치하여 매우 빠르게 개념화했음을 증명했습니다. 그런 다음 그리드 바깥 쪽에서 int를 확인한 다음 마지막 편집 컨트롤 위치를가집니다. 테스트 할 때 잠시만 기다렸으므로 비슷한 예제를 하위 클래스 dgv에 넣을 수 있어야합니다. –
데이비드 감사합니다. 데이비드에게 캐럿 위치가 있지만 위/아래 화살표를 사용하면 다음 행의 편집 모드로 전환되지 않습니다. 편집을 설정하고 캐럿 위치를 변경하는 방법을 모르겠습니다. 편집 모드를 EditOnEnter로 설정하려고했으나 마우스 클릭 한 번으로 편집 할 수 없습니다. 죄송합니다. 새내기의 비트 ... –