我现在正在改变这个问题!
我使用以下内容进行搜索:
//check the array for a match
foreach (Delivery d in mainForm.myDeliveries)
{
if (d.DeliveryName == searchValue)
{
ListViewItem item = lstDeliveryDetails.Items.Add(d.DeliveryName);
item.SubItems.Add(d.DeliveryAddress);
item.SubItems.Add(d.DeliveryDay);
item.SubItems.Add(d.DeliveryTime);
item.SubItems.Add(d.DeliveryMeal);
item.SubItems.Add(d.DeliveryInstructions);
item.SubItems.Add(d.DeliveryStatus);
}
}
我的问题是,现在搜索所有其他值,进行完整搜索的最佳方法是什么? 我知道我可以做其他的陈述,并通过地址,日期,时间等。
有没有更好的方法来实现这一目标? 此刻,用户必须输入整个名称才能获得结果,如果他们只输入名称的一部分,我可以制作吗?
答案 0 :(得分:0)
清除列表视图中的所有项目,只添加符合搜索条件的项目:
lstDeliveryDetails.Clear();
for (int i = 0; i < myDeliveries.Count; i++)
{
Delivery d = (Delivery)mainForm.myDeliveries[i];
if (d.DeliveryName == searchValue)
lstDeliveryDetails.Items.Add(d.DeliveryName);
}
答案 1 :(得分:0)
更改您的显示方法,使其接受像此一样的传递列表参数(或数组)
private void displayDeliveries(List<Delivery> deliveries)
并相应地更改其定义
在你的btnSearch中获取List中选定的交付列表并传递给displayDeliveries方法
初始化listView时,将mainForm.myDeliveries作为参数发送
<强>更新强>
从用户处获取关键字并按此检查
if (d.DeliveryName.Contains(searchValue))
如果列表很小,您还可以通过处理textbox的TextChanged事件来尝试增量搜索。