winforms данных Переключить выбор строки DataGridView, где SelectionMode-FullRowSelect



datagridview c# заполнение (1)

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

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

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


Answer #1

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

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

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, а также переменную уровня класса, содержащую состояние выделения.





datagridview