private void InitializeIgnitionMap() { IgnitionMapDataGridView.Redim(11, 11); IgnitionMapDataGridView.FixedColumns = 1; IgnitionMapDataGridView.FixedRows = 1; IgnitionMapDataGridView[0, 0] = new SourceGrid.Cells.ColumnHeader(string.Empty) { View = emptyHeaderView }; IgnitionMapDataGridView[0, 0].Column.MinimalWidth = 80; IgnitionMapDataGridView[0, 0].Column.MaximalWidth = 200; IgnitionMapDataGridView[0, 0].Column.Width = 80; for (int rowIndex = 1; rowIndex < 11; rowIndex++) { IgnitionMapDataGridView[rowIndex, 0] = new LoadCell(Font, Controller.GlobalConfiguration.LoadTypeMaximum, (binIndex, value) => Controller.IgnitionMap.UpdateLoadBin(binIndex, value)); IgnitionMapDataGridView.Rows[rowIndex].Height = 28; for (int columnIndex = 1; columnIndex < IgnitionMapDataGridView.ColumnsCount; columnIndex++) { if (rowIndex == 1) { Cell rpmHeaderCellheader = new RpmCell(Font, (binIndex, value) => Controller.IgnitionMap.UpdateRpmBin(binIndex, value)); IgnitionMapDataGridView[0, columnIndex] = rpmHeaderCellheader; rpmHeaderCellheader.Column.MinimalWidth = 60; rpmHeaderCellheader.Column.Width = 60; rpmHeaderCellheader.View = columnHeaderView; } IgnitionMapDataGridView[rowIndex, columnIndex] = new AdvanceCell(Font, true, (row, col, value) => Controller.IgnitionMap[row, col] = unchecked ((byte)value)); } } IgnitionMapDataGridView.Width = 0; //This will force a resize so the columns will stretch to fill the space. The width will not actually be set to 0 because the Dock property is set to Fill. }
void Controller_CurrentIgnitionCellChanged(object sender, EventArgs <IgnitionCellIndex> e) { SafeInvoke(() => { if (CurrentCell != null) { CurrentCell.View.BackColor = GetAdvanceColor(Convert.ToByte(CurrentCell.Value)); CurrentCell.View.ForeColor = Color.Black; } if ((e.Value.LoadBin == byte.MaxValue) || (e.Value.RpmBin == byte.MaxValue)) { return; } ICell cell = IgnitionMapDataGridView[e.Value.LoadBin + 1, e.Value.RpmBin + 1]; cell.View.BackColor = SystemColors.Highlight; cell.View.ForeColor = SystemColors.HighlightText; CurrentCell = cell; IgnitionMapDataGridView.Refresh(); }); }