리스트뷰 아이템 옆에 있는 체크박스가 아이템을 더블클릭 혹은 클릭시 체킹이 되는 문제!!!

또, Shift 키나 Ctrl 키를 함께 눌러서 사용했을 때 체킹이 이상하게 되는 문제를 해결하는 방법


그냥 아예..선택만 되고 체킹이 안됐으면 좋겠따....생각해서 찾아보았다



private bool inhibitAutoCheck;

private void listView1_MouseDown(object sender, MouseEventArgs e) {
    inhibitAutoCheck = true;
}

private void listView1_MouseUp(object sender, MouseEventArgs e) {
    inhibitAutoCheck = false;
}

private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) {
    if (inhibitAutoCheck)
        e.NewValue = e.CurrentValue;
}

이렇게 작성해주면 선택만 되고, 체크박스에 체킹이 안된다!!!!!!


When clicking:

  1. MouseDown <------------- inhibited region
  2. Click
  3. MouseClick
  4. MouseUp ------------->
  5. ItemCheck (outside inhibited region)
  6. ItemChecked

When double clicking:

  1. MouseDown <------------- inhibited region
  2. ItemSelectionChanged
  3. SelectedIndexChanged
  4. Click
  5. MouseClick
  6. MouseUp ------------->
  7. MouseDown <------------- inhibited region
  8. ItemCheck (inside inhibited region)
  9. ItemActivate
  10. DoubleClick
  11. MouseDoubleClick
  12. MouseUp ------------->

이러한 원리라는데.. 그냥 누가더 우선순위인가 이런문제인것 같다



이제ㅠㅠ 선택된 아이템들을 체킹할수 있는 방법을 생각하러가야지...

한국사이트에서 아무도 이야기 안해놓길래.. 해외사이트 검색 안하는사람을 위해!!!!

+ Recent posts