C# 如何删除列表视图中显示的特定文本/消息?
嘿 我会尽量在这里更好地解释我的问题和我的处境:) 我的应用程序中有一个C# 如何删除列表视图中显示的特定文本/消息?,c#,.net,listview,C#,.net,Listview,嘿 我会尽量在这里更好地解释我的问题和我的处境:) 我的应用程序中有一个ListView,这个ListView用于输出错误,所以它有点用于错误日志 我的程序主要是一个计时器,它检查int值的变化 当发生错误时,我想在列表中显示它。 问题是错误会被添加3-4次,甚至更多 如果我检查一下是否存在(exist.in.listbox),我将无法再次添加相同的错误。我想做的是删除特定的消息/错误,然后在其“修复”或不再对系统构成威胁时将其删除。 下面是代码片段: if (C
ListView
,这个ListView
用于输出错误,所以它有点用于错误日志
我的程序主要是一个计时器,它检查int值的变化
当发生错误时,我想在列表中显示它。
问题是错误会被添加3-4次,甚至更多
如果我检查一下是否存在(exist.in.listbox),我将无法再次添加相同的错误。我想做的是删除特定的消息/错误,然后在其“修复”或不再对系统构成威胁时将其删除。
下面是代码片段:
if (Convert.ToInt32(x) == 1 && Convert.ToInt32(y) == 1)
{
found = false;
ListViewItem item = new ListViewItem(message);
foreach (ListViewItem z in listView1.Items)
{
if (z.Text == message)
{ found = true; }
}
if (found == false)
{
item.SubItems.Add(now.ToString());
listView1.Items.Add(item);
listView1.EnsureVisible(item.Index);
}
}
else
{
foreach (ListViewItem z in listView1.Items)
{
if (z.Text == message)
{
//no longer a threat, delete the message added aboue
}
}
}
我找不到关于这个的任何东西。仅“选择-->删除行时”
可以像visual中的错误窗口一样考虑这一点,当您遇到红色错误时,您可以修复代码。并且它会消除:)您应该遵循与添加项目相同的方法。首先,检查是否要执行删除,然后删除该项 如果这执行得不好(在每次计时器迭代时在列表中迭代两次),您还可以将“添加/删除”逻辑移出ListView(即,可能保留一个字典以便更快地查找)
我想您可以用deleteMessageIfEssential(message)调用替换else子句,现在添加了代码,并调用了deleteIFN…但是我在哪里调用呢?if(Convert.ToInt32(x)==1&&Convert.ToInt32(y)==1){//do add if needs thing}else{deleteifEssential(message);}激发“删除事件”当你想删除它时。或者可能正在进行威胁检查process@user1338640没问题。别忘了标记答案:)。祝你好运
void DeleteIfNecessary(string message)
{
ListViewItem listViewItem = FindListViewItemForMessage(message);
if (listViewItem == null)
{
// item doesn't exist
return;
}
this.listView1.Items.Remove(listViewItem);
}
private ListViewItem FindListViewItemForMessage(string s)
{
foreach (ListViewItem lvi in this.listView1.Items)
{
if (StringComparer.OrdinalIgnoreCase.Compare(lvi.Text, s) == 0)
{
return lvi;
}
}
return null;
}