/// <summary> /// /// </summary> private ToolStripMenuItem HideColumn(int columnIndex) { var menuItem = new ToolStripMenuItem { Text = CultureService.GetString(CultureText.menuItem_HideColumn_Text), Enabled = !_dataGridView.Columns[columnIndex].Frozen }; menuItem.Click += (o, e) => { var newColumnLayout = new ColumnLayoutCollection(); foreach (var layout in _dataGridView.ColumnLayout) { newColumnLayout.Add(layout); } var toHideColumn = newColumnLayout.FirstOrDefault(n => n.Name == _dataGridView.ColumnLayout[columnIndex].Name); if (toHideColumn != null) { toHideColumn.Visible = false; } _dataGridView.ColumnLayout = newColumnLayout; }; return(menuItem); }
/// <summary> /// Context menu a DataGridView oszlopainak fejlécéhez. /// FIGYELEM Csak azokat oszlopokoat lehet elmenteni amiknek van nevük /// </summary> /// <param name="columnIndex">Erre a fejléc indexre kattintott.</param> /// <returns>Context menu, ezt jelenísd meg.</returns> private ContextMenuStrip CreateColumnHeaderContextMenuStrip(int columnIndex) { var contextMenu = new ContextMenuStrip(); #region Hide Column var hideColumnStripItem = new ToolStripMenuItem { Text = CultureService.GetString(CultureText.menuItem_HideColumn_Text), Enabled = !Columns[columnIndex].Frozen }; hideColumnStripItem.Click += (o, e) => { var newColumnLayout = new ColumnLayoutCollection(); foreach (var layout in ColumnLayout) { newColumnLayout.Add(layout); } var toHideColumn = newColumnLayout.FirstOrDefault(n => n.Name == Columns[columnIndex].Name); if (toHideColumn != null) { toHideColumn.Visible = false; } ColumnLayout = newColumnLayout; /*TODO: Túl hosszú múvelet.*/ /*AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);*/ }; contextMenu.Items.Add(hideColumnStripItem); #endregion #region Auto Size Column var autoSizeColumnStripItem = new ToolStripMenuItem { Text = CultureService.GetString(CultureText.menuItem_AutoSizeColumn_Text), }; var lastColumns = Columns.GetLastColumn(DataGridViewElementStates.Visible, DataGridViewElementStates.None); if (lastColumns != null) { /*Az utolsó oszlopra nem nyomhat autó size-t, mert akkor elvesziti az utolsó oszolp a Fill-t...*/ if (lastColumns.Index != columnIndex) { autoSizeColumnStripItem.Enabled = true; } else { autoSizeColumnStripItem.Enabled = false; } } autoSizeColumnStripItem.Click += (o, e) => { AutoResizeColumn(columnIndex); }; contextMenu.Items.Add(autoSizeColumnStripItem); #endregion contextMenu.Items.Add("-"); #region Show All var showAllItem = new ToolStripMenuItem { Text = CultureService.GetString(CultureText.menuItem_ShowAll_Text), }; showAllItem.Click += (o, e) => { ShowAllColums(); }; contextMenu.Items.Add(showAllItem); #endregion #region Auto Size All var autoSizeAllItem = new ToolStripMenuItem { Text = CultureService.GetString(CultureText.menuItem_AutoSizeAll_Text), }; autoSizeAllItem.Click += (o, e) => { Cursor.Current = Cursors.WaitCursor; AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); Cursor.Current = Cursors.Default; }; contextMenu.Items.Add(autoSizeAllItem); #endregion contextMenu.Items.Add("-"); #region Column Name checkButton foreach (DataGridViewColumn gridColumn in this.Columns) { if (gridColumn.HeaderText != @"Index") { var button = new ToolStripMenuItem { Text = gridColumn.HeaderText, CheckOnClick = true, CheckState = gridColumn.Visible ? CheckState.Checked : CheckState.Unchecked }; var column = gridColumn; button.CheckStateChanged += (o, ev) => { column.Visible = button.CheckState == CheckState.Checked ? true : false; }; contextMenu.Items.Add(button); } } #endregion return(contextMenu); }