gpt4 book ai didi

c# - 根据项目和子项目的文本查找 ListView 项目

转载 作者:行者123 更新时间:2023-11-30 23:25:56 25 4
gpt4 key购买 nike

我有包含 2 个组(ONLINEOFFLINE)和两列(Namelistview >状态).

ListView Example

这是我将项目添加到特定组的代码:

public void f2list(object group, string friend, string status)
{
ListViewItem item = new ListViewItem(new string[] { friend, (string)status });
GroupItem(item, group);
this.ListView.Items.Add(item);
}

object group 定义将添加 OFFLINEONLINE 的组项目,string friend 定义好友用户名,string status 只是第二列 Status

该代码的第二部分:

private void GroupItem(ListViewItem item, object group2)
{
foreach (ListViewGroup group in this.ListView.Groups)
{
if (group.Header == (string)group2)
{
item.Group = group;
break;
}
}
}

因此,我需要以某种方式在这两个组之间移动项目或从列表中删除项目 namestatus 以便它可以再次添加到另一个组中。

我知道如何在我点击 selected 项目时删除它,但是当其他类或函数调用“移动那个特定项目/将那个特定项目分配给另一个组”时如何做到这一点?

f2list 被另一个 public void AddUserToList 调用,但这只是分配文本,如 f2list(group,username,status);(例如 f2list("ONLINE","Joe","Hey i am online!"); 并检查 username 是否已经存在以防止重复项。

如何在组之间移动项目取决于在 f2list(group, ...) 中调用了哪些组?此 group 是预定义的 OFFLINE在线

因此,当 Name 又名 username 上线并显示在 listviewONLINE 组中时,但是当他/她下线然后分配到另一个组 OFFLINE?

附加信息:此代码仅适用于将项目添加到列表中。但是如何在这两个组之间移动项目呢?或者甚至从组为 OFFLINEONLINE 的列表中删除项目?

EDIT 此外,当我手动删除 selected 项目时,该项目将正确更改组。

EDIT 2 这些项目由 timer 添加,它会检查其他用户是在线还是离线。

最佳答案

使用 FindItemWithText 查找项目

找到 Item基于 Text您可以使用的项目 FindItemWithText

var item = this.listView1.FindItemWithText("item text");

您还可以使用其他签名在搜索中包含子项:

var item = this.listView1.FindItemWithText("", true, 0);

使用 Linq 查找项目

还可以执行自定义搜索,您可以使用 Linq方法。例如:

var item = this.listView1.Items.Cast<ListViewItem>()
.Where(x => (x.Text == "Some Text" ||
x.SubItems[1].Text == "Some Text") &&
x.Group.Name=="group1" )
.FirstOrDefault();

找一个小组

在创建组的时候,给组起一个合适的名字,然后通过名字找到它们。关注Name不同于HeaderText .要按名称查找群组,您可以:

var group = this.listView1.Groups["group1"];

将项目移动到组

移动 ItemGroup , 找到项目并找到你想要的组就足够了,然后只需将组分配给 Group Item的属性(property):

item.Group = group;

关于c# - 根据项目和子项目的文本查找 ListView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37074405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com