阻止在DataGridView控件中选择多个单元格

时间:2011-03-08 17:54:22

标签: c# .net datagridview

有谁能告诉我如何防止在datagridview控件中选择多个单元格?

3 个答案:

答案 0 :(得分:8)

使用MultiSelect属性

编辑:根据您要完成的内容,您可能还必须使用SelectionMode属性

答案 1 :(得分:3)

<{1>}属性&gt;&gt;中的

行为部分&gt;&gt;将MultiSelect设置为 false

enter image description here

答案 2 :(得分:0)

如果您希望防止控件从多个列中单击,可以执行以下操作:

private int nSelectedColumn = 0;

(在Datagridview上添加一个CellClick事件,并复制以下代码:)

    private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (Control.ModifierKeys == Keys.Shift || Control.ModifierKeys == Keys.Control)
        {
            if (_nSelectedColumn != 0)
            {
                if (_nSelectedColumn != e.ColumnIndex)
                {
                    dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = false;
                    if (Control.ModifierKeys == Keys.Shift)
                        dataGridView.ClearSelection();
                }

            }
            else
                _nSelectedColumn = e.ColumnIndex;
        }
        else
            _nSelectedColumn = e.ColumnIndex;
    }

还要确保启用了多重选择,并且SelectionMode设置为CellSelect。

效果是您可以控制列中的单击项,甚至可以平移同一列中的单击。当您控制该列之外的点击时,该单元格将取消选择;如果您将单击移至该列之外,则它将取消选择所有内容。