2009-05-01 2 views
1

프로그래밍 방식으로 데이터를 추가하는 DataGridView가 있습니다. AutoSizeRowsMode를 AllCells로 설정하고 RapsDefaultCellStyle의 WrapMode를 True로 설정했습니다. DataGridView에 여러 줄을 추가하면 여러 줄을 표시하는 행이 자동으로 표시됩니다. 그러나 여러 줄 데이터가있는 열을 숨기면 (열에는 한 줄의 데이터 만 남게됩니다) 행은 단일 행으로 크기가 조정되지만 숨겨진 열을 다시 표시하면 행의 크기가 조정되지 않습니다. 양식의 크기를 조정하면 행이 올바르게 수정됩니다.C# DataGridView AutoSizeRowsMode 문제

다음 코드는 열의 가시성을 어떻게 전환하는지 보여줍니다. notificationDataGridView.Columns [1] .Visible =! notificationDataGridView.Columns [1] .Visible;

누구나 해결 방법을 알려 줄 수 있습니까? 내가 생각할 수있는 무효화와 새로 고침의 모든 조합을 시도했다.

답변

1

좋아, 이것이 DataGridView의 버그인지 모르겠지만 무엇이든지 해킹 할 수 있습니다. 호출 후 : 왜

notificationDataGridView.DefaultCellStyle.WrapMode = DataGridViewTriState.NotSet; 
notificationDataGridView.DefaultCellStyle.WrapMode = DataGridViewTriState.True; 

이 안 함,하지만이 작동하는 것 같다 :

notificationDataGridView.Columns[1].Visible = !notificationDataGridView.Columns[1].Visible; 

코드의 두 줄을 추가합니다. 누구든지 더 나은 해결책을 가지고 있다면, 그것을 게시하십시오!

+0

이 방법으로 여러 줄의 셀에서 캐리지 리턴을 잃었습니다. @Russ의 답변이 저에게 효과적이었습니다. –

2

올바르게 크기를 조정하지 않은 행 높이와 비슷한 문제가 발생했습니다. 내 DataGridView에서 나는 관련 데이터 항목에 AutoSizeRowsMode = AllCells 및 DefaultCellStyle.WrapMode = DataGridViewTriState.True가있는 DataGridViewTextBoxColumn에 사용자 정의 데이터를 쓰는 데 CellFormatting 이벤트를 사용하고 있습니다. 그 줄의 셀 텍스트에서 \ r \ n을 사용하여 추가 행을 추가합니다. 행 중 하나에 여분의 행을 추가하기 위해 데이터를 변경하면 크기가 조정되지 않았으므로 추가 한 추가 행이 표시되지 않았습니다. 위의 해결 방법을 시도하여 행 높이를 다시 그려야하지만 작동하지 않습니다. 그래도 다음과 같은 불쾌한 해결 방법이 효과적이었습니다.

이상하게도이 해킹은 높이가 아니라 너비를 재설정하여 작동합니다.