public void Update(bool clearSelection = true) { if (clearSelection) { SelectedFriend = null; } for (int i = 0; i < Rows.Length; i++) { if (Rows[i] != null) { Rows[i].Dispose(); } Rows[i] = null; } List <ClientFriend> filteredFriends = new List <ClientFriend>(); if (_blockedTab) { filteredFriends = Friends.Where(e => e.Blocked).ToList(); } else { filteredFriends = Friends.Where(e => !e.Blocked).ToList(); } int maxPage = filteredFriends.Count / Rows.Length + 1; if (maxPage < 1) { maxPage = 1; } PageNumberLabel.Text = (Page + 1) + " / " + maxPage; int maxIndex = filteredFriends.Count - 1; if (StartIndex > maxIndex) { StartIndex = maxIndex; } if (StartIndex < 0) { StartIndex = 0; } for (int i = 0; i < Rows.Length; i++) { if (i + StartIndex >= filteredFriends.Count) { break; } if (Rows[i] != null) { Rows[i].Dispose(); } Rows[i] = new FriendRow { Friend = filteredFriends[i + StartIndex], Location = new Point((i % 2) * 115 + 16, 55 + ((i) / 2) * 22), Parent = this, }; Rows[i].Click += (o, e) => { FriendRow row = (FriendRow)o; if (row.Friend != SelectedFriend) { SelectedFriend = row.Friend; SelectedIndex = FindSelectedIndex(); UpdateRows(); } }; if (SelectedFriend != null) { if (SelectedIndex == i) { SelectedFriend = Rows[i].Friend; } } } }
public void Update(bool clearSelection = true) { if (clearSelection) SelectedFriend = null; for (int i = 0; i < Rows.Length; i++) { if (Rows[i] != null) Rows[i].Dispose(); Rows[i] = null; } List<ClientFriend> filteredFriends = new List<ClientFriend>(); if (_blockedTab) filteredFriends = Friends.Where(e => e.Blocked).ToList(); else filteredFriends = Friends.Where(e => !e.Blocked).ToList(); int maxPage = filteredFriends.Count / Rows.Length + 1; if (maxPage < 1) maxPage = 1; PageNumberLabel.Text = (Page + 1) + " / " + maxPage; int maxIndex = filteredFriends.Count - 1; if (StartIndex > maxIndex) StartIndex = maxIndex; if (StartIndex < 0) StartIndex = 0; for (int i = 0; i < Rows.Length; i++) { if (i + StartIndex >= filteredFriends.Count) break; if (Rows[i] != null) Rows[i].Dispose(); Rows[i] = new FriendRow { Friend = filteredFriends[i + StartIndex], Location = new Point((i % 2) * 115 + 16, 55 + ((i) / 2) * 22), Parent = this, }; Rows[i].Click += (o, e) => { FriendRow row = (FriendRow)o; if (row.Friend != SelectedFriend) { SelectedFriend = row.Friend; SelectedIndex = FindSelectedIndex(); UpdateRows(); } }; if (SelectedFriend != null) { if (SelectedIndex == i) { SelectedFriend = Rows[i].Friend; } } } }