¿Cómo puedo hacer que algunas celdas en DataGridView no sean seleccionables?DataGridView: ¿Cómo hacer que algunas celdas sean no seleccionables?
Por 'no seleccionable' quiero decir: no se puede seleccionar de ninguna manera y al intentar seleccionarlo no se deseleccionará ninguna otra celda.
No me refiero a ReadOnly
. Mis células ya tienen esta propiedad como verdadera.
DataGridView.MultiSelect
debe ser falso.
Gracias a la respuesta de JYL yo escribimos un código:
private int selectedCellRow = 0;
private int selectedCellColumn = 0;
private void grid_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e)
{
if (e.Cell == null || e.StateChanged != DataGridViewElementStates.Selected)
return;
if (e.Cell.RowIndex == 0 || e.Cell.ColumnIndex == 0 || e.Cell.RowIndex == 1 && e.Cell.ColumnIndex == 1)
{
e.Cell.Selected = false;
grid.Rows[selectedCellRow].Cells[selectedCellColumn].Selected = true;
}
else
{
selectedCellRow = e.Cell.RowIndex;
selectedCellColumn = e.Cell.ColumnIndex;
}
//this was only for seeing what is happening
//this.Text = selectedCellRow + " " + selectedCellColumn;
}
Pero esto conduce a StackOverflow. ¿Qué condición y dónde debo poner para prevenir eso?
¿Quieres decir un-editable? ¿Al igual que algunas de las celdas son de solo lectura? –