private void SelectListItem(DetailsListView listView, int index) { // 単一 Rectangle bnd = default(Rectangle); bool flg = false; if (listView.FocusedItem != null) { bnd = listView.FocusedItem.Bounds; flg = true; } do { listView.SelectedIndices.Clear(); } while (listView.SelectedIndices.Count > 0); listView.Items[index].Selected = true; listView.Items[index].Focused = true; if (flg) { listView.Invalidate(bnd); } }
private void SelectListItem(DetailsListView listView, int[] indecies, int focused) { // 複数 Rectangle bnd = default(Rectangle); bool flg = false; if (listView.FocusedItem != null) { bnd = listView.FocusedItem.Bounds; flg = true; } int fIdx = -1; if (indecies != null && !(indecies.Count() == 1 && indecies[0] == -1)) { do { listView.SelectedIndices.Clear(); } while (listView.SelectedIndices.Count > 0); foreach (int idx in indecies) { if (idx > -1 && listView.VirtualListSize > idx) { listView.SelectedIndices.Add(idx); if (fIdx == -1) { fIdx = idx; } } } } if (focused > -1 && listView.VirtualListSize > focused) { listView.Items[focused].Focused = true; } else if (fIdx > -1) { listView.Items[fIdx].Focused = true; } if (flg) { listView.Invalidate(bnd); } }
private void ChangeItemStyleRead(bool read, ListViewItem item, PostClass post, DetailsListView listView) { bool useUnreadStyle = _configs.UseUnreadStyle; // フォント Font fnt = read ? _fntReaded : _fntUnread; // 文字色 Color cl = _clrUnread; if (post.IsFav) { cl = _clrFav; } else if (post.IsRetweeted) { cl = _clrRetweet; } else if (post.IsOwl && (post.IsDm || _configs.OneWayLove)) { cl = _clrOwl; } else if (read || !useUnreadStyle) { cl = _clrRead; } item.SubItems[5].Text = read ? string.Empty : "★"; if (listView == null || item.Index == -1) { item.ForeColor = cl; if (useUnreadStyle) { item.Font = fnt; } } else { listView.Update(); if (useUnreadStyle) { listView.ChangeItemFontAndColor(item.Index, cl, fnt); } else { listView.ChangeItemForeColor(item.Index, cl); } } }