2012-10-04 6 views
1

목록보기와 일부 열 "ID", "제품 이름"및 "공급 업체"가 있습니다. 해당 항목을 추가, 편집 또는 삭제할 수 있으며 항목 목록보기로 "엉망이 된"후에 이와 같이 새로 고침됩니다. C에서 목록보기를 새로 고칠 때 항목 손실 포커스 방지 #

listView.Items.Clear(); 
foreach (var item in result) 
{ 
    ListViewItem lv = new ListViewItem(item.ID.ToString()); 
    lv.SubItems.Add(item.Name.ToString()); 
    lv.SubItems.Add(item.Vendor.ToString()); 
    listView.Items.Add(lv); 
} 

때문에이 방법은 내가 목록에서 모든 항목을 삭제하고 다시 작성하기 때문에 논리적 내가 항목의 목록 포커스가 손실 새로 고침 할 때마다,를 제외하고 잘 작동합니다. 내 문제는 편집 된 항목과 새로 추가 된 항목에 집중할 수있는 방법입니다. 일부 항목을 편집 할 때 listview를 맨 위로 스크롤하지 않고 편집 된 항목이있는 위치에 머물러있게하려면 편집하십시오. FindItemWithText 메서드로 시도하고 발견 된 항목에 listview 중 포커스가 설정된 항목을 설정하는 것보다 작동하지 않습니다. 이런 종류의 문제에 대한 해결책은 있습니까?

int oldFocusedIndex = listView.SelectedItems[0].Index; 
나중에

다음 실행 초점을 복원 할 수 있습니다 :

listView.Items[oldFocusedIndex].Selected = true; 

당신은 또한 인해 ListView 's의 사용자에게 표시 항목을 만들 수 있습니다

답변

5

저장 변수에 항목의 인덱스를 집중 스크롤 막대는 Clear() 방법 다음에 맨 위에 남습니다.

listView.Items[oldFocusedIndex].EnsureVisible(); 
+0

하지만 메타는 없습니다. od.SelectedIndex? 나는 이것으로 색인을 얻을 수 없다. – Milan

+0

@Milan 죄송합니다. – AgentFire

관련 문제