문제

프로그래밍 방식에 데이터를 추가하는 DataGridView가 있습니다. autosizerowsmode가 allcells로 설정되었고 rowsdefaultcellstyle의 랩 모드가 true로 설정되어 있습니다. DataGridView에 멀티 라인 행을 추가하면 잘 나타납니다 (여러 줄을 표시하기 위해 행을 자동화합니다). 그러나 멀티 라인 데이터가있는 열을 숨기면 (열에 왼쪽 열에 단일 라인 데이터 만있는 경우) 행은 단일 행으로 크기를 조정하지만 숨겨진 열을 어떻게 할 때, 행은 크기를 조정하지 않습니다. 양식 크기를 조정하면 행이 수정됩니다.

다음 코드는 열의 가시성을 토글하는 방법을 보여줍니다. NotificationDatagridView.columns [1] .Visible =! notificationDatagridView.columns [1] .Visible;

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

도움이 되었습니까?

해결책

좋아, 이것이 DatagridView의 버그인지는 모르겠지만 여기에 작동하는 해킹이 있습니다. 전화 후 :

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

이 두 줄의 코드를 추가하십시오.

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

왜 그런지 묻지 마세요. 그러나 이것은 효과가있는 것 같습니다. 누구든지 더 나은 솔루션이 있으면 게시하십시오!

다른 팁

Row Heights가 올바르게 크기를 조정하지 않은 비슷한 문제를 발견했습니다. DataGridView에서 셀 포맷 이벤트를 사용하여 DataGridViewTextBoxColumn에 사용자 정의 데이터를 작성하고 있으며, 여기서 AutosizerOwsMode = allCells 및 defaultCellStyle.WrapMode = DataGridViewTristate.True가 있습니다. 해당 열의 셀 텍스트에서 r n을 사용하여 추가 선을 추가합니다. 행 중 하나에 추가 라인을 추가하기 위해 데이터를 변경하면 크기 조정되지 않았으므로 추가 된 추가 선이 표시되지 않았습니다. 위의 해결 방법을 시도하여 행 높이를 다시 그리기 위해 강제하려고 시도했지만 작동하지 않았습니다. 다음과 같은 불쾌한 해결 방법은 나에게 효과가있었습니다.

dataGridView.Width++;
dataGridView.Width--;

이상하게 도이 해킹은 높이가 아닌 너비를 재설정하는 것만으로 만 작동했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top