C# 确保ListViewItem显示在ListView中

C# 确保ListViewItem显示在ListView中,c#,winforms,listview,C#,Winforms,Listview,我有一个长列表视图,其中包含我的应用程序当前正在运行的操作列表(每次执行一个操作)。 运行每个操作后,相关的ListViewItem以粗体显示。 ListView很长,所以我有垂直滚动条 我的问题是如何将当前正在运行的操作显示给用户,也就是说,如何将列表视图“滚动”到该项目 我试图手动选择行==>无效。 我使用了ListViewItem.EnsuRevible,但这使得ListView在每次更改时都会闪烁 有什么想法吗?谢谢 编辑:我添加了一些代码,尽管代码非常简单。 每当运行新操作时,我都会运

我有一个长列表视图,其中包含我的应用程序当前正在运行的操作列表(每次执行一个操作)。 运行每个操作后,相关的ListViewItem以粗体显示。 ListView很长,所以我有垂直滚动条

我的问题是如何将当前正在运行的操作显示给用户,也就是说,如何将列表视图“滚动”到该项目

我试图手动选择行==>无效。 我使用了ListViewItem.EnsuRevible,但这使得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++;
}
你是说

listView1.EnsureVisible(listView1.Items.Count - 1);
你是说

listView1.EnsureVisible(listView1.Items.Count - 1);
也许你应该在你的循环之前和之后打电话。

也许你应该在你的循环之前和之后打电话。

找到了一个不错的方法。 它涉及到使用win32,但它完成了这项工作。 显然,可以在列表上设置双缓冲,从而解决闪烁问题。 所以,使用EnsureRevible和双缓冲工作很好。

找到了一个很好的解决方案。 它涉及到使用win32,但它完成了这项工作。 显然,可以在列表上设置双缓冲,从而解决闪烁问题。
所以,使用EnsureRevible和双缓冲工作很好。

Hi,请展示一些代码,特别是调用EnsureRevible的方式。。。这应该是首选的解决方案,关于闪烁,它可能取决于您调用它的方式以及您对控件所做的操作。您好,请展示一些代码,特别是您调用EnsureRevible的方式。。。这应该是首选的解决方案,关于闪烁,它可能取决于您调用它的方式以及您对控件所做的操作。我指的是ListViewItem.EnsureRevible,它与ListView.EnsureRevible的功能相同(我不是指静态函数,如果您这么认为的话)…当然,它是在ListViewItem实例上运行的。无论如何,在ListView上执行相同的操作会得到相同的结果…ListView在每次更改时都会闪烁。我的意思是ListViewItem.EnsureVisible,它与ListView.EnsureVisible的作用相同(如果您认为是静态函数的话,我不是指静态函数)…当然它会在ListViewItem实例上出现。无论如何,在ListView上执行相同的操作会得到相同的结果…ListView在每次更改时都会闪烁。