切换DataGridView行选择,其中SelectionMode是FullRowSelect

时间:2011-02-07 02:55:01

标签: winforms datagridview

我有一个DataGridView,其中SelectionMode = FullRowSelect和MultiSelect = False。

当用户点击某行时,会按预期选择该行。但是,再次单击同一行不会取消选择该行。

如何进行行选择以在选定和未选择之间切换?

1 个答案:

答案 0 :(得分:4)

据我所知,没有开箱即用的功能可以做到这一点。

我设法通过以下代码获得您要求的效果:

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

}

使用dataGridView的SelectionChanged和CellClick事件,以及保持选择状态的类级变量。