private void ScannedLineupGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { Comparison <Channel> old_sort = current_scanned_sort_; Comparison <Channel> new_sort = null; ScannedGridColumn column = ScannedColumnToEnum(e.ColumnIndex); switch (column) { case ScannedGridColumn.Number: new_sort = CompareChannelNumbers; break; case ScannedGridColumn.Listing: new_sort = CompareListing; break; case ScannedGridColumn.Type: new_sort = CompareChannelType; break; case ScannedGridColumn.TunerCount: new_sort = CompareTunerCount; break; case ScannedGridColumn.Encrypted: new_sort = CompareScannedEncrypted; break; case ScannedGridColumn.TuningParams: new_sort = CompareTuningParams; break; case ScannedGridColumn.Callsign: new_sort = CompareCallsigns; break; } if (new_sort == null) { return; } reverse_scanned_sort_ = (new_sort == old_sort) && !reverse_scanned_sort_; current_scanned_sort_ = new_sort; SortScannedChannels(); ScannedLineupGridView.Invalidate(); }
private void SelectScannedChannel(Channel scanned_channel) { int scanned_channel_index = -1; for (int index = 0; index < scanned_channels_.Count; ++index) { if (scanned_channels_[index].StoredObjectGuid == scanned_channel.StoredObjectGuid) { scanned_channel_index = index; break; } } if (scanned_channel_index >= 0) { ScannedLineupGridView.ClearSelection(); ScannedLineupGridView.CurrentCell = ScannedLineupGridView.Rows[scanned_channel_index].Cells[0]; foreach (DataGridViewCell cell in ScannedLineupGridView.Rows[scanned_channel_index].Cells) { cell.Selected = true; } if (ScannedLineupGridView.FirstDisplayedScrollingRowIndex > scanned_channel_index) { ScannedLineupGridView.FirstDisplayedScrollingRowIndex = scanned_channel_index; } else { if (ScannedLineupGridView.DisplayedRowCount(false) + ScannedLineupGridView.FirstDisplayedScrollingRowIndex <= scanned_channel_index) { ScannedLineupGridView.FirstDisplayedScrollingRowIndex = scanned_channel_index - ScannedLineupGridView.DisplayedRowCount(false) + 1; } } } }