2009-11-02 8 views
3

배경 은 내가 사용자 인터페이스에 삭제 버튼이있는 DataGridView에DataGridview에서 (키보드에서) 행 삭제를 트랩하는 방법은 무엇입니까?

this.datagridview.DataSource = mycollection

에 바인더 제본 된 사용자 정의 컬렉션이 있습니다. 사용자는 삭제 버튼을 클릭하여 선택한 DX 디렉토리를 삭제할 수 있습니다.

일부 Entried는 삭제할 수 없으므로 "삭제 버튼"을 활성화 및 비활성화합니다.

사용자가 삭제 버튼을 클릭하여 항목을 삭제하는 경우 잘 작동합니다.

문제는 : 사용자가 "키보드"에서 "삭제"버튼을 누르면

방법 트랩 키 보드 "삭제"할 수 있습니다 버튼 .. 난에서 삭제 버튼을 누르면 키보드 :

DataGrid를보기에서 선택한 행을 삭제 --it는 .. --When 사용자를 클릭합니다 .. 그것은 또한뿐만 아니라 XML로 저장합니다 .. 저장

는 데이터 그리드 뷰의이 내가 처리 한 _RowRemoved 이벤트를 해결하려면 ..하지만 여전히 도움

+0

WPF 또는 WinForms? –

+0

WinForms입니다 –

답변

11

UserDeletingRow 이벤트에 첨부 도와주세요, 그리고 e.Cancelled = true

+1

도움을 주셔서 감사합니다 롭 !! –

0

을 설정하여 (필요한 경우) 삭제를 취소

CanUserDeleteRows="false" 

을 바로 XAML에서 데이터 그리드에 : 당신은 버튼이 있기 때문에 그들이 당신이 바로 설정할 수있는 '삭제'할 수있을 때 그 처리합니다.

이 경우에만 "삭제"키가 사용되지 않습니다 (버튼이 여전히 작동 함). 버튼을 사용하여 삭제할 수 있습니다.

"삭제"키 (적절한 경우)를 사용할 수있게하려면 삭제하는 것이 적절하지 않을 때 UserDeletingRow 이벤트를 첨부하고 취소를 처리해야합니다.

관련 문제