C# 在C中,如何选择当前项目
我正在开发一个程序,该程序使用一个listview,其中包含若干项,这些项通过foreach循环运行。如何让listview突出显示当前项 到目前为止,我正在尝试的代码是: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
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。列表视图允许多选。我将更新代码。每个勾选选择所有项目?我认为您应该在委派活动中使用屈服工具。