C# 根据文本框更改更新选定的骰子

C# 根据文本框更改更新选定的骰子,c#,listview,search,textbox,C#,Listview,Search,Textbox,我有一个表单,其中包含一个listview,它从数据库中提取票证信息。数据库对象都被抽象到一个类库中。listview下面有一个选项卡页,显示票证的各种详细信息 我的问题是,我在这个表单的顶部实现了一个搜索,它没有更新这个选项卡页面,只有listview得到更新。键入关键字后,listview将正确刷新,并且删除所有不包含关键字的项目,直到清除搜索框中的文本。但是我不能让tabpage显示相同的行为。选项卡页仍然始终包含所有票据 例如,如果我在listview中搜索只返回1张票证的内容,并说该票

我有一个表单,其中包含一个listview,它从数据库中提取票证信息。数据库对象都被抽象到一个类库中。listview下面有一个选项卡页,显示票证的各种详细信息

我的问题是,我在这个表单的顶部实现了一个搜索,它没有更新这个选项卡页面,只有listview得到更新。键入关键字后,listview将正确刷新,并且删除所有不包含关键字的项目,直到清除搜索框中的文本。但是我不能让tabpage显示相同的行为。选项卡页仍然始终包含所有票据

例如,如果我在listview中搜索只返回1张票证的内容,并说该票证是记录中的第10张票证;标签页会显示第一张票的详细信息。在进行搜索后,如何使tabpage显示与listview相同的行为

选项卡页当前使用以下函数填充:

private void FillTicket()
    {
        try
        {
            if (listView1.SelectedIndices.Count > 0)
            {
                CTicket thistkt = comp.Tickets[listView1.SelectedIndices[0]];
                dedit1.DocumentHTML = thistkt.LineItems.GetCombinedProblem();
                dedit2.DocumentHTML = thistkt.LineItems.GetCombinedResolution();
                lvAssignmentHistory.Items.Clear();

                            foreach (CInc_AssignmentHistory a in thistkt.AssignmentHistory)
                            {
                                 ListViewItem itm = new ListViewItem();
                                itm.Text = a.pAsgn_Datetime.ToString();
                                itm.SubItems.Add(a.pAsgn_Group_fr);
                                itm.SubItems.Add(a.pAsgn_from);
                                itm.SubItems.Add(a.pAsgn_Group_to);
                                itm.SubItems.Add(a.pAsgn_to);
                                itm.SubItems.Add(a.pChanged_By);
                                lvAssignmentHistory.Items.Add(itm);
                }
当这被称为:

private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
    {

        //FillTicket();

        if (txtBox_TicketSearch.Text != "") 
        {
            FillTicketNothing();
        }
        else
        {
            FillTicket();

        }

在我看来,只有当用户
列表视图中选择不同的项目时,您才更新选项卡页面。
如果您的
listView1\u SelectedIndexChanged
方法只是
ListView.SelectedIndexChanged
事件的处理程序,则仅当
listView1
中的选择发生更改时才会调用它,而不是当其内容发生更改时(不更改选择)

因此,在搜索后更改
listView1.Items
的内容时,应调用
FillTicket

此外,如果ListView中有选定项,则您的
FillTicket
方法仅更新选项卡页:

if (listView1.SelectedIndices.Count > 0)
我不知道该if是否有
else
-分支。否则,如果未选择任何项目,则选项卡页上不会有任何更改。您可能需要使用
listView1.Items.Count