C# 在C中,如何选择当前项目

C# 在C中,如何选择当前项目,c#,listview,C#,Listview,我正在开发一个程序,该程序使用一个listview,其中包含若干项,这些项通过foreach循环运行。如何让listview突出显示当前项 到目前为止,我正在尝试的代码是: foreach (ListViewItem lvi in lvActions.Items) { // clear list view items and select the current item lvActions.SelectedItems.Clear(); lvActions.EnsureV

我正在开发一个程序,该程序使用一个listview,其中包含若干项,这些项通过foreach循环运行。如何让listview突出显示当前项

到目前为止,我正在尝试的代码是:

foreach (ListViewItem lvi in lvActions.Items)
{
    // clear list view items and select the current item
    lvActions.SelectedItems.Clear();
    lvActions.EnsureVisible(lvi.Index);
    lvi.Selected = true;
    lvi.Focused = true;
    lvActions.Refresh();

    // Execute function on current item
    myFunction(lvi.Text);

    // Pause foreach for 3 seconds
    Stopwatch delayWatch = new Stopwatch();
    delayWatch.Reset();

    while (delayWatch.ElapsedMilliseconds < 3000)
    {
        delayWatch.Start();
        Application.DoEvents();
        delayWatch.Stop();
    }
}

有一些有趣的线程问题与您的代码有关

据我所知,您希望等待3秒钟,然后突出显示列表中的某些项目

为了避免一些线程问题,我会做一些不同的事情。像这样的

    Timer t = new Timer();
    t.Interval = 3000;
    t.Tick += new EventHandler(t_Tick);
    t.Start();

    //add then 
    void t_Tick(object sender, EventArgs e)
    {
        foreach(ListViewItem i in itemsToSelect)
        {
           i.Selected = true;
        }
    } 

有一些有趣的线程问题与您的代码有关

据我所知,您希望等待3秒钟,然后突出显示列表中的某些项目

为了避免一些线程问题,我会做一些不同的事情。像这样的

    Timer t = new Timer();
    t.Interval = 3000;
    t.Tick += new EventHandler(t_Tick);
    t.Start();

    //add then 
    void t_Tick(object sender, EventArgs e)
    {
        foreach(ListViewItem i in itemsToSelect)
        {
           i.Selected = true;
        }
    } 

@如果您的ListView从不更改其项目,madmik3的解决方案就可以正常工作。如果这样做,代码将失败,因为您无法对集合进行foreach并同时更新它


我可以给出一个代码示例,但是如果您的listview从不更改,我就不担心它了

@madmik3的解决方案可以很好地工作,如果您的listview从不更改它的项目。如果这样做,代码将失败,因为您无法对集合进行foreach并同时更新它


我可以提供一个代码示例,但如果您的listview从未更改,我不会为此担心

谢谢您的回复。SelectedIndex正在抛出错误。ListView的SelectedIndex属性似乎不存在。抱歉,我正在查看ListBox。列表视图允许多选。我将更新代码。每个勾选选择所有项目?我认为您应该在委托活动中使用收益工具。谢谢您的回复。SelectedIndex正在抛出错误。ListView的SelectedIndex属性似乎不存在。抱歉,我正在查看ListBox。列表视图允许多选。我将更新代码。每个勾选选择所有项目?我认为您应该在委派活动中使用屈服工具。