2013-01-09 356 views
0

我有一個ListView包含100項,我們可以根據選定的項目做某些活動。我使用EnsureVisible()方法來調整可見性,並使用我的ListView刷新時間來更新數據。如何在listview中使用ensurevisible方法?

現在我面臨的問題是,如果我在列表中選擇第一項,然後我開始向下翻頁在此選擇(可能選擇21,59 和第75),我可以強調各1次,第24和 第56當控件突然刷新頁面在這種情況下,只有第一選擇保留焦點,我已經失去了我的其他選擇,並不得不單獨或更快地通過。

所以我的問題是如何我可以選擇多個項目,並執行操作,而ListView正在刷新在一定的時間間隔填充數據雖然使用EnsureVisible()

這是我的exisitng代碼:

if (_listviewFirst.SelectedItems.Count > 0) 
     { 
      _listviewFirst.SelectedItems[_listviewFirst.SelectedItems.Count - 1].EnsureVisible(); 
      _listviewFirst.SelectedItems[0].EnsureVisible(); 
     } 
+0

也許你應該在每個選定的項目之後的某個地方保存一個項目列表鍵值。然後刷新後重新選擇該列表 – Boomer

+0

@Boomer我可以在這些情況下使用ListView.TopItem屬性,我不知道它是否會工作,如果那我該如何使用 – vettori

+0

爲什麼你的控件突然刷新?你可以嘗試使用複選框嗎? http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.checkboxes.aspx –

回答

1

我會用ListView.ItemSelectionChangedMSDN)事件,並添加/刪除所選項目的List項目(或它們的引用)。刷新控件後,您應該迭代所選項目並更新ListView中選定的項目。

您將能夠利用事件處理程序中的e.IsSelectede.Iteme.ItemIndex來執行此操作。我不會使用EnsureVisible

+0

@vettori爲你做了這項工作? –

相關問題