private void dgvRouting_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridViewColumn col = dgvLinks.Columns[e.ColumnIndex]; if ((col != fromColumn) && (col != toColumn)) { return; } // Get the clicked row and associated stream DataGridViewRow row = dgvLinks.Rows[e.RowIndex]; CANStreamer clickedStream = (CANStreamer)row.DataBoundItem; // Get the clicked cell DataGridViewCell cell = row.Cells[e.ColumnIndex]; bool cellValue = (bool)cell.EditedFormattedValue; // Add/remove connector if (col == fromColumn) { if (cellValue) { StreamManager.AddConnector(clickedStream, thisStream); } else { StreamManager.RemoveConnector(clickedStream, thisStream); } } else if (cellValue) { StreamManager.AddConnector(thisStream, clickedStream); } else { StreamManager.RemoveConnector(thisStream, clickedStream); } }