Переключить выбор строки DataGridView, где SelectionMode = FullRowSelect - PullRequest
6 голосов
/ 07 февраля 2011

У меня есть DataGridView, где SelectionMode = FullRowSelect и MultiSelect = False.

Когда пользователь щелкает строку, она выбирается, как и ожидалось.Однако повторное нажатие на ту же строку не отменяет выбор строки.

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

1 Ответ

4 голосов
/ 07 февраля 2011

Насколько я знаю, нет готовой функциональности, которая сделает это.

Мне удалось получить запрошенный эффект с помощью следующего кода:

public partial class Form1 : Form
{
    private bool selectionChanged;

    public Form1()
    {            
        InitializeComponent();
    }

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (!selectionChanged)
        {
            dataGridView1.ClearSelection();
            selectionChanged = true;
        }
        else
        {
            selectionChanged = false;
        }
    }

    private void dataGridView1_SelectionChanged(object sender, EventArgs e)
    {
        selectionChanged = true;
    }

}

При этом используются события SelectionChanged и CellClick объекта dataGridView, а также переменная уровня класса, содержащая состояние выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...