DataGridView: Как сделать некоторые ячейки недоступными для выбора?

Как я могу сделать некоторые ячейки в DataGridView недоступными для выбора?

Под «невыбираемыми» я имею в виду: их нельзя выбрать каким-либо образом, и попытка выбрать его не отменит выбор любой другой ячейки.

Я не имею в виду Только для чтения . Мои ячейки уже имеют это свойство как истинное.

DataGridView.MultiSelect должно быть ложным.

Благодаря ответу JYL я написал код:

    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;
    }

Но это приводит к StackOverflow. Какое условие и где мне нужно поставить, чтобы предотвратить это?

19
задан Miko Kronn 18 December 2010 в 00:23
поделиться