2008-08-17 6 views
7

ListView 컨트롤이 있는데 선택된 행을 변경하지 못하도록하는 가장 쉽고/최선의 방법을 찾으려고합니다 을 숨기려면이 선택되어 있어야합니다. 행.C#에서 ListView를 사용하지 않지만 현재 선택 영역을 계속 표시합니다.

나는 HideSelection 속성을 알고 있지만 ListView이 여전히 활성화되어 있지만 포커스가없는 경우에만 작동합니다. ListView를 사용할 수없는 경우에도 선택 항목을 볼 수 있어야합니다.

어떻게 구현할 수 있습니까?

답변

2

ListView ownerdraw를 만들 수도 있습니다. 그런 다음 항목의 선택 여부와 ListView 자체의 사용 여부를 완벽하게 제어 할 수 있습니다. DrawListViewItemEventArgs는 ListView에 항목의 개별 부분을 그리는 방법을 제공하므로 사용자가 관심있는 비트 만 그릴 수 있습니다. 예를 들어 항목의 배경을 그릴 수 있지만 ListView를 사용하여 그릴 수 있습니다 텍스트

1

두 가지 옵션이 있습니다. 선택한 행을 비활성화 된 색상으로 변경합니다. 또는 다른 모든 행을 변경하여 선택된 행을 제외하고는 비활성화됩니다. 첫 번째 옵션은 분명 가장 쉽고, 두 번째 옵션은 분명히 몇 가지 추가적인 보호 장치가 필요할 것입니다.

저는 실제로 첫 번째 옵션을 수행했으며 꽤 잘 작동합니다. 프로세스에서 나중에 다른 행을 선택하는 경우 색을 기본값으로 다시 변경하는 것을 기억해야합니다.

0

의 SelectedIndexChanged 구현이

private void listViewABC_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     listViewABC.SelectedItems.Clear(); 
    } 
관련 문제