데이터 테이블에 연결된 Datagridview가 있습니다. 셀 값에 따라 행을 숨기거나 표시하고 싶습니다. 예를 들어 셀 값이 "N"이면 "Y"이면 행을 숨기고 행을 숨길 수 있습니다. 나는 또한 아래로있는 DataGridView의 CellValueChanged 이벤트 처리 한데이터 소스 변경시 Datagridview 업데이트
New DataColumn With {.ColumnName = "Rec", .AllowDBNull = False, .DefaultValue = "N", .DataType = GetType(String)}
: 설치로
를 DataColumn은
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
If CType(sender, DataGridView).Columns(e.ColumnIndex).HeaderText.Equals("Rec") Then
CType(sender, DataGridView).Rows(e.RowIndex).Visible = CType(sender, DataGridView).Item(e.ColumnIndex, e.RowIndex).Value.Equals("N")
End If
End Sub
을하지만 프로그래밍 방식으로 값을 "Y"로 변경 (때 그리드에서 값이 변경된 것을 볼 수 있습니다.) 행은 계속 표시됩니다. 나는 또한 이벤트 처리기 안에 휴식을 넣고 해고되지 않습니다! 그래서 질문, cellvalue를 "Y"로 변경하면 어떻게 datagridviewrow를 숨길 수 있습니까?
CType(DataGridView1.DataSource, DataTable).Item("Rec") = "Y"
내가 직접 그리드를 업데이트하고, 따라서 해고 할 수
편집
그냥 손에서 문제를 좀 더 명확를 추가하려면 내가 프로그래밍 그리드의 데이터 소스를 업데이트하는 방법입니다 cellvaluechanged 이벤트가 발생하면 CurrencyManager 오류가 발생하므로 바인딩을 일시 중단 한 다음 셀 값이 업데이트 될 때마다 표에 대한 바인딩을 다시 시작해야합니다. 이는 작은 데이터 세트조차도 (심지어 리플렉션을 통해 구현 된 이중 버퍼링을 사용하는 경우에도) 달팽이의 속도에서도 작동합니다.
'DataTable'에서 행을 제거하십시오. – Fabio
데이터 테이블에서 행을 제거하면 더 이상 행을 업데이트하여 DataGridview에서 다시 볼 수 없게됩니다. – Nepaluz
DataGridview에서 행을 숨기면 어떻게 셀 값을 다시 'N'으로 변경할 수 있습니까? – Fabio