![](/img/trans.png)
[英]How do you add listbox data into a textBox on another webPage. Using Visual Studio 2015 C#
[英]How to remove / filter data on listbox using textbox on C#
我需要在具有从SQL提取数据的列表框中添加搜索框-我不确定这不是我的代码。 我只需要添加搜索功能。 列表框包含用户名和姓氏。 因此,我只需要使用lbUsers(列表框名称)即可。
到目前为止,我已经可以搜索用户名了,但是它只显示最接近的搜索-我希望代码过滤掉包含我在搜索框中键入的内容的所有内容:
private void btnSearch_Click(object sender, EventArgs e)
{
this.lbUsers.SelectedItems.Clear();
for (int s = this.lbUsers.Items.Count - 1; s >= 0; s--)
{
if (this.lbUsers.Items[s].ToString().ToLower().Contains(this.tbSearch.Text.ToLower()))
{
this.lbUsers.SetSelected(s, true);
}
}
}
我也不希望所有用户显示-仅显示与搜索框条件相关的用户。
您将必须手动执行此操作:
这是一个最小的示例:
List<User> users = new List<User>();
private void txtFilter_TextChanged(object sender, EventArgs e)
{
List<User> displayList = this.users;
if(this.txtFilter.Text != string.Empty)
{
displayList = this.users.Select(u => u.Name == this.txtFilter.Text);
}
this.lbUsers.Items.Clear();
this.lbUsers.Items.AddRange(displayList);
}
我认为做到这一点的最佳方法是通过可见性。 这样,您不必继续创建/处置列表框项目。
例如,下面的代码将满足您的要求:
foreach (var item in lbUsers.Items)
{
if (item.ToString().Contains(this.tbSearch.Text))
{
item.Visible = true;
}
else
{
item.Visible = false;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.