두 개의 확인란 열이있는 DataGridView
이 있습니다. 두 행의 행이 모두 선택되면 체크 표시를 지우려고합니다. 그리드는 DataTable에서 채워집니다. 그것은 다음과 같이 작동즉시 DataGridView 셀 값 새로 고침
CellValueChanged
이벤트를 발생하는 코드를 수정 한
this 당으로
if (bothColumnsAreChecked)
{
DataRow first = SelectedFirstItems.First();
DataRow second = SelectedSecondItems.First();
// stuff...
first["IsCheckedFirst"] = false;
second["IsCheckedSecond"] = false;
}
:
void brandsGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
brandsGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
문제는, 그 이후 체크 표시를 지우면 행 중 하나가 선택됩니다 (이 행의 확인란을 방금 클릭했기 때문에).이 행의 체크 표시는 여전히 표시됩니다. 행을 선택 취소 할 때까지 사라지지 않습니다. 어떻게해야합니까? 나는 시도했다 :
1) Refresh()
그리드에. 쓸데없이; 모눈은 새로 고쳐지지만 커서를 이동하기 전에 다시 그려지지 않습니다.
2) CommitEdit()
및 EndEdit()
. 이렇게해도 마지막으로 선택한 확인란이 지워지지 않습니다.
어떻게해야합니까?
편집 : 설명하는 것이 좋지 않습니다. 다음은 간단한 연습입니다.
두 개의 확인란 열 (c1 및 c2)이 있습니다.
1) 행 r1에서 c1을 클릭합니다. c1이 확인되고 r1이 선택됩니다.
2) 행 r2 (또는 r1)에서 c2를 클릭합니다. c2가 선택되고 r2가 선택됩니다.
3) c1 및 c2가 이제 지워집니다 (체크 박스 정보를 어딘가에 기록한 후).
문제는 r1의 c1에서 청크가 사라지지만 r2의 포커스가 사라질 때까지 r2의 체크 상자에 그대로 남아 있다는 점입니다.
희망이 있습니다.
나는 이해할 수 없다. DataGridview에서 행을 선택하고 일부 열 (내가 작성한 것으로 가정 한 것)에 체크 표시가있는 것은 2 가지입니다. 무엇을 성취하려고합니까? 사라지거나 정확히 무엇을 선택합니까? – Tarec
확인란을 클릭하면 확인란이있는 행이 선택됩니다. 선택이 사라질 수도 있고 그렇지 않을 수도 있습니다. 중요하지 않습니다. 내가하고 싶은 것은 체크 박스를 지운 후에 그리드를 다시 그려서 체크 표시가없는 것이다. –
@JohnNoCookies '체크 박스 지우기'가 무슨 뜻인지 이해가 안됩니까? 당신이 직접 그렸고 그것을 지우고 싶습니까? 아니면 '체크 박스를 선택 취소 하시겠습니까?'라는 뜻입니까? –