public static void AddTableControls(FormMain parent, ToolStripMenuItem menu, ExtendedDataGridView dataGridView, BindingSource bindingSource) { menu.DropDownItems.Add(Decorator.CreateCheckboxToolStrip(true, "Header", isVisible => dataGridView.HeaderVisible = isVisible)); menu.DropDownItems.Add(Decorator.CreateCheckboxToolStrip(true, "Footer", isVisible => dataGridView.FooterVisible = isVisible)); menu.DropDownItems.Add(Decorator.CreateCheckboxToolStrip(false, "Selector", isVisible => dataGridView.RowHeadersVisible = isVisible)); menu.DropDownItems.Add(Decorator.CreateCheckboxToolStrip(true, "Multiline", isEnabled => dataGridView.Multiline = isEnabled)); menu.DropDownItems.Add(Decorator.CreateButtonToolStrip("Data Format", (sender, args) => { DataGridView grid = new DataGridView(); grid.Dock = DockStyle.Fill; grid.AllowUserToAddRows = false; grid.RowHeadersVisible = false; grid.RowTemplate.DefaultCellStyle.Padding = new Padding(3, 5, 3, 5); grid.ColumnHeadersHeight += 10; grid.RowTemplate.Height += 10; grid.Columns.Add(new DataGridViewColumn { Name = "№", CellTemplate = new DataGridViewTextBoxCell(), Width = 80, ReadOnly = true }); grid.Columns.Add(new DataGridViewColumn { Name = "Type", CellTemplate = new DataGridViewTextBoxCell(), Width = 150, ReadOnly = true }); grid.Columns.Add(new DataGridViewColumn { Name = "Format (Editable)", CellTemplate = new DataGridViewTextBoxCell(), Width = 300, DefaultCellStyle = new DataGridViewCellStyle { NullValue = "[NULL]" } }); int index = 0; foreach (var column in parent.Columns) { grid.Rows.Add(++index, column.type.Name, column.Format); } grid.CellValueChanged += (o, ev) => parent.Columns[ev.RowIndex].Format = grid.Rows[ev.RowIndex].Cells[ev.ColumnIndex].Value.ToString(); Form dialog = new Form(); dialog.Text = "Data rows format"; dialog.Size = new Size(400, 200); dialog.MinimizeBox = false; dialog.MaximizeBox = false; dialog.StartPosition = FormStartPosition.CenterParent; dialog.AutoScaleMode = AutoScaleMode.Font; dialog.Font = parent.Font; dialog.Controls.Add(grid); dialog.Show(parent); })); menu.DropDownItems.Add(Decorator.CreateButtonToolStrip("Config Folder", (sender, args) => { var fullFilePath = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath; Process.Start("explorer.exe", Path.GetDirectoryName(fullFilePath)); })); }