【发布时间】:2011-02-07 02:55:00
【问题描述】:
我有一个 DataGridView,其中 SelectionMode=FullRowSelect 和 MultiSelect=False。
当用户点击一行时,它会按预期被选中。但是,再次单击同一行不会取消选择该行。
如何使行选择在选中和未选中之间切换?
【问题讨论】:
标签: winforms datagridview
我有一个 DataGridView,其中 SelectionMode=FullRowSelect 和 MultiSelect=False。
当用户点击一行时,它会按预期被选中。但是,再次单击同一行不会取消选择该行。
如何使行选择在选中和未选中之间切换?
【问题讨论】:
标签: winforms datagridview
据我所知,没有现成的功能可以做到这一点。
我设法通过以下代码获得了您要求的效果:
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 事件,以及保存选择状态的类级别变量。
【讨论】: