繁体   English   中英

如何限制可以在DataGridView中选择的行数

[英]How to limit number of rows that can be selected in DataGridView

我在C#中有一个MultiSelect = TrueDataGridView

我想将同时选择的行的最大数量限制为2,以便用户只能同时选择一或两行。 我该如何实现?

没有像BeforeSelectedRowsChanged或ValidatingSelectedRows这样的事件。

我的DataGridView也为只读。

**编辑**我的SelectionMode是FullRowSelect

在SelectionChanged事件上,您可以执行以下操作:

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (dataGridView1.SelectedCells.Count > 2)
    {
      dataGridView1.SelectedCells[0].Selected = false;
    }
}

选择两个后,这将防止/取消选择更多的单元格。

对于整行:

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (dataGridView1.SelectedRows.Count > 2)
    {
      dataGridView1.SelectedRows[0].Selected = false;
    }
}

您可以尝试覆盖SetSelectedRowCore,通过将新限制添加到所选条件来调用基础。

protected virtual void SetSelectedRowCore(int rowIndex,bool selected   )
{
    base(rowIndex, selected && currentSelection < allowedSelectionCount);
}

SetSelectedRowCore

这总是保留选中的2个最后选择的行

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
    {
        if (dataGridView1.SelectedRows.Count > 2)
        {
            for (int i = 2; i < dataGridView1.SelectedRows.Count; i++)
            {
                dataGridView1.SelectedRows[i].Selected = false;

            }
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM