void cellMenu_ItemModeClicked(object sender, EventArgs e) { ToolStripItem item = sender as ToolStripItem; ContextMenuStrip menu = item.GetCurrentParent() as ContextMenuStrip; int nRowIndex = m_GPIO_DataTable.CurrentRow.Index; gpioPin pin = getRowPin(nRowIndex); String[] mode = (string[])item.Tag; setPinValue(pin, pin.getPinIndex(mode[0]), int.Parse(mode[1])); }
private void dataGridView1_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) { int rowIndex = e.RowIndex; int cellIndex = e.ColumnIndex; DataGridView view = (DataGridView)sender; if (rowIndex >= m_GPIO_values.Count) { e.Value = String.Empty; return; } gpioPin pin = getRowPin(rowIndex); String cName = view.Columns[cellIndex].Name; DataGridViewCell cell = view.Rows[rowIndex].Cells[cellIndex]; String cellValue = pin.Value; switch (cName) { case "GPIO": cellValue = pin.pinID; break; case "Value": cellValue = pin.Value; break; default: cellValue = pin.pinToString(pin.getPinIndex(cName)); break; } if (e.Value == null || e.Value.ToString() != cellValue) { e.Value = cellValue; } }
/* table */ private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { int rowIndex = e.RowIndex; int cellIndex = e.ColumnIndex; if (rowIndex < 0 || cellIndex < 0) { return; } gpioPin pin = getRowPin(rowIndex); if (pin.rowDisable) { e.CellStyle.BackColor = Color.LightGray; return; } String cellValue = pin.Value; Color bkColor = Color.White; Color textColor = Color.Black; DataGridView view = (DataGridView)sender; String cName = view.Columns[cellIndex].Name; // DataGridViewCell cell = view.Rows[rowIndex].Cells[cellIndex]; switch (cName) { case "GPIO": try { bkColor = m_GPIO_color[pin.Value]; } catch (Exception) { } break; case "Value": if (pin.isChanged()) { bkColor = Color.Red; textColor = Color.White; } break; default: if (pin.Value.Length != gpioPin.g_pins.Length) { if (pin.isChanged()) { bkColor = Color.Red; textColor = Color.White; } break; } int nPin = pin.getPinIndex(cName); if (nPin >= 0 && pin.IsChangedPin(nPin)) { bkColor = Color.Red; textColor = Color.White; } break; } e.CellStyle.BackColor = bkColor; e.CellStyle.ForeColor = textColor; }