コード例 #1
0
 private bool IncludeInFilter(PerforceUserRecord User, string[] FilterWords)
 {
     foreach (string FilterWord in FilterWords)
     {
         if (User.Name.IndexOf(FilterWord, StringComparison.OrdinalIgnoreCase) == -1 &&
             User.FullName.IndexOf(FilterWord, StringComparison.OrdinalIgnoreCase) == -1 &&
             User.Email.IndexOf(FilterWord, StringComparison.OrdinalIgnoreCase) == -1)
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #2
0
        private void PopulateList()
        {
            UserListView.BeginUpdate();
            UserListView.Items.Clear();

            int SelectedItemIndex = -1;

            string[] Filter = FilterTextBox.Text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            for (int Idx = 0; Idx < Users.Count; Idx++)
            {
                PerforceUserRecord User = Users[Idx];
                if (IncludeInFilter(User, Filter))
                {
                    ListViewItem Item = new ListViewItem(User.Name);
                    Item.SubItems.Add(new ListViewItem.ListViewSubItem(Item, User.FullName));
                    Item.SubItems.Add(new ListViewItem.ListViewSubItem(Item, User.Email));
                    Item.Tag = (int)Idx;
                    UserListView.Items.Add(Item);

                    if (SelectedItemIndex == -1 && Idx >= SelectedUserIndex)
                    {
                        SelectedItemIndex = UserListView.Items.Count - 1;
                        Item.Selected     = true;
                    }
                }
            }

            if (SelectedItemIndex == -1 && UserListView.Items.Count > 0)
            {
                SelectedItemIndex = UserListView.Items.Count - 1;
                UserListView.Items[SelectedItemIndex].Selected = true;
            }

            if (SelectedItemIndex != -1)
            {
                UserListView.EnsureVisible(SelectedItemIndex);
            }

            UserListView.EndUpdate();

            UpdateOkButton();
        }