/// <summary>
        ///   Handle Right Mouse Click to show Column Config Dialogue
        /// </summary>
        /// <param name = "sender"></param>
        /// <param name = "e"></param>
        private void tracksGrid_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            // On right click on Header show config dialogue
              if (e.Button == MouseButtons.Right)
              {
            ColumnSelect dialog = new ColumnSelect(this);
            dialog.ShowDialog();
            return;
              }

              if (e.ColumnIndex == 0) // Don't Sort the Status Column
              {
            return;
              }

              // We clicked on the column, so let's sort it
              DataGridViewColumn newColumn = tracksGrid.Columns[e.ColumnIndex];
              ListSortDirection direction;

              // We store the Sortoder in the Columns Tag
              object currentSortOrder = newColumn.Tag;
              if (currentSortOrder != null)
              {
            // Sort the same column again, reversing the SortOrder.
            if ((int)currentSortOrder == 0)
            {
              direction = ListSortDirection.Descending;
            }
            else
            {
              direction = ListSortDirection.Ascending;
            }
              }
              else
              {
            direction = ListSortDirection.Ascending;
            // Clear the Glyph for all
            foreach (DataGridViewColumn col in tracksGrid.Columns)
            {
              col.Tag = null;
              col.HeaderCell.SortGlyphDirection = SortOrder.None;
            }
              }

              // Sort the selected column.

              PropertyDescriptor prop = _propColl.Find(newColumn.Name, false);
              Options.Songlist.Sort(prop, direction);

              newColumn.HeaderCell.SortGlyphDirection =
              direction == ListSortDirection.Ascending ?
              SortOrder.Ascending : SortOrder.Descending;
              newColumn.Tag = (int)direction;

              tracksGrid_Sorted();
              tracksGrid.Update();
              tracksGrid.Refresh();
        }
Example #2
0
 /// <summary>
 ///   Change Display Columns
 /// </summary>
 /// <param name = "sender"></param>
 /// <param name = "e"></param>
 private void ChangeDisplayColumns_Executed(object sender, CommandExecutedEventArgs e)
 {
     this.ribbon.BackstageViewVisible = false;
       Form dlg = new ColumnSelect(TracksGridView);
       ShowModalDialog(dlg);
 }
 /// <summary>
 ///   Handle Right Mouse Click to show Column Config Dialogue
 /// </summary>
 /// <param name = "sender"></param>
 /// <param name = "e"></param>
 private void tracksGrid_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
 {
     // only hndle right click on Header to show config dialogue
       if (e.Button == MouseButtons.Right)
       {
     ColumnSelect dialog = new ColumnSelect(this);
     dialog.ShowDialog();
       }
 }