2009-05-02 3 views
3

ListView 컨트롤에서 해당 컨트롤 내에서 일부 Item에 포커스가 있습니다. 즉, 컨트롤에 포커스가있는 자체 내부 개념이 유지되며 FocusedItem 속성을 사용하여 검색 할 수 있습니다.ListView 컨트롤의 모든 항목에서 포커스를 제거하려면 어떻게합니까?

아니요에 집중해야 할 항목이 있습니다. 즉, FocusedItem 속성을 null으로 설정해야합니다. 내가 어떻게 이것을 성취 할 수 있을지 생각해?

+0

질문에 대해 자세히 설명해 주시겠습니까? 나는 그것을 정말로 이해하지 못한다. –

+0

조금만 청소 해 보려고했는데 ... 불행히도 여전히 가짜입니다. selectedFocus 메서드 나 멤버가 없습니다. 아마도 FocusedItem을 의미할까요? – Shog9

+0

http://stackoverflow.com/questions/276986/listview-focuseditem-becomes-null을 참조하십시오. – ESRogs

답변

6

(brianpeiris 확대를위한 덕분에) Vanuan의 대답에 확장하려면 :

if (listView1.FocusedItem != null) 
{ 
    listView1.FocusedItem.Focused = false; 
} 

뭔가 당신은 또한 원하는 것을 알려줍니다 항목을 취소를 선택합니다. 따라서 다음과 같이 설정하는 것이 좋습니다.

if (listView1.SelectedItems.Count != 0) 
{ 
    listView1.SelectedItems[0].Selected = false; 
} 
+0

첫 번째가 작동 중입니다. 대단히 감사합니다. –

4

나는 그것이

listView1.FocusedItem.Focused=false; 

가 listView1.FocusedItem이 null이 있는지 확인합니다 생각합니다.

+0

손에 잡히지 않는 예외를줍니다. –

+0

무슨 예외입니까? – Vanuan

1

새 항목이 목록보기 컨트롤에 추가되면 항목 주위에 점선으로 된 상자가 그려집니다. 이 시각적 신호를 원하지 않는 경우가 있습니다. 선택한 항목을 강조 표시하기 만하면됩니다. 목록보기 컨트롤에 새 항목을 추가 할 때 점선으로 표시된 상자가 나타나지 않도록하는 방법 중 하나는 다음과 같습니다.

ListViewItem item = new ListViewItem(); 
myListView.Items.Add(item); 
myListView.SelectedItems.Clear(); 
myListView.FocusedItem = null; 
myListView.Refresh(); 

UPDATE :
내 솔루션은 문제가 해결되지 않습니다. 나는 통제를 "unfocus"하는 간단한 방법이 있었으면 좋겠다. 그러나 수 시간 동안 인터넷 검색 후에 나는 아무것도 찾을 수 없었다. 나도 그 점선들이 나타나지 않도록하는 방법을 찾고 있었다. 목록보기 항목을 추가하기 위해 단추를 클릭해도 문제가 없습니다. 버튼을 탭 (입력 포커스 받기) 한 후 엔터 키를 누를 때만 표시됩니다.

관련 문제