public String makeGPIOstring() { Dictionary <string, gpioPin> pins; lock (m_GPIO_values) { pins = new Dictionary <string, gpioPin>(m_GPIO_values); } String clipState = String.Empty; clipState += "PIN ID\t"; clipState += String.Join("\t", gpioPin.g_pins) + "\r\n"; foreach (KeyValuePair <string, gpioPin> key in pins) { String value = String.Empty; gpioPin pin = key.Value; if (pin.rowDisable) { value = "\tignore"; } else { for (int ix = 0; ix < gpioPin.g_pins.Length; ++ix) { string v = pin.pinToString(ix); value += "\t"; if (ix > 0 || v.Length > 0) { value += v.Length > 0 ? v : "-"; } else { value += pin.Value; } } } clipState += String.Format("GPIO{0}{1}\r\n", key.Key, value); } return(clipState); }
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; } }