2011-08-24 52 views
0

我有一個很長的ListView,其中包含我的應用當前正在運行的動作列表(每次執行的每個動作)。 運行每個操作後,相關的ListViewItem將以粗體顯示。 ListView很長,所以我有垂直滾動條。確保ListViewItem顯示在ListView中

我的問題是如何使顯示給用戶的當前運行操作,即如何將列表視圖「滾動」到該項目。

我試圖手動選擇行==>沒有工作。 我已經使用ListViewItem.EnsureVisible,但這使ListView閃爍每個更改。

有什麼想法?謝謝。

編輯:我添加了一些代碼,即使代碼很簡單。 每當一個新的動作正在運行,我運行以下命令:

foreach (ListViewItem item in m_ListView.Items) 
{ 
    FontStyle style = ((index == value) ? FontStyle.Bold : FontStyle.Regular); 
    item.Font = new Font(item.Font, style); 

    if (index == value) 
    {       
     m_ModulesListView.EnsureVisible(index); 
    } 

    index++; 
} 
+0

嗨,請顯示一些代碼,尤其是您打電話給EnsureVisible的方式......應該是首選解決方案,關於閃爍可能取決於您稱之爲的方式以及您對控件執行的操作。 –

回答

0

找到了不錯的solution。它涉及到使用win32,但它完成了這項工作。 顯然,可以在解決閃爍問題的列表上設置雙緩衝。 因此,使用EnsureVisible和雙緩衝工作就好了。

2

你意味着

listView1.EnsureVisible(listView1.Items.Count - 1); 
+0

我的意思是ListViewItem.EnsureVisible,它與ListView.EnsureVisible一樣(我不是指靜態函數,如果你認爲的話)... ofcourse它在ListViewItem實例上。無論如何,在ListView上做同樣的結果... ListView閃爍每次更改。 –