需要帮助编辑datagridview中的多个单元格

时间:2009-04-20 15:44:45

标签: c# datagridview cell

我正在尝试支持在datagridview上编辑多个单元格。我几乎完成了,因为它在编辑完成后正确地将内容复制到其他单元格。我现在正在做的是抓住第一把按键。

当我只编辑一个单元格时,使用EditOnKeystrokeOrF2可以正常工作。但是,当选择多个单元格时,我正在捕获Keydown事件并手动调用BeginEdit。但是,当我这样做时,按下的键不包含在编辑中。

如何将第一把钥匙压入我的牢房?

2 个答案:

答案 0 :(得分:1)

我做了一些额外的实验,并找到了实现这一目标的方法。它有点草率,但它确实有效。

private int _keyValue;
private Boolean _checkKeyValue = false;

private void Grid1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
    DataGridViewCell cell = Grid1.Rows[e.RowIndex].Cells[e.ColumnIndex];

    if (_checkKeyValue)
    {
        _checkKeyValue = false;

        if (value != -1)
        {
            cell.Value = _keyValue;
        }
    }   
}

private void Grid1_KeyDown(object sender, KeyEventArgs e)
{
    if (Grid1.SelectedCells.Count > 1)
        {
            _checkKeyValue = true;
            _keyValue = (int)e.KeyValue;
            Grid1.BeginEdit(false);
        }
}

通过注册CellBeginEdit事件,我可以在那里填充值。我对_keyValue进行了一些其他处理,使其成为一个数字,但这与其余部分无关。

答案 1 :(得分:0)

可能只是标记密钥未被处理就足够了。

private void dataGridView_KeyDown(Object sender, KeyEventArgs keyEventArgs)
{
   keyEventArgs.Handled = false;
}