按钮单击不触发当焦点设置为CellEndEdit上DataGridView中的下一个单元格时

尼特什

在Windows窗体上,我有一个包含3列和几个按钮来处理数据处理的gridview。网格是可编辑的,每当用户在编辑模式下按下“ Enter”键时,我就会使用下面的代码将焦点移至当前行的下一个单元格。

private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex != dataGridView.Columns.Count - 1)
        {
            this.BeginInvoke(new MethodInvoker(() =>
            {
                dataGridView.CurrentCell = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex + 1];
            }));
        }
    }

该代码工作正常,并根据需要将焦点移到下一个单元格。但是,当我在网格单元格处于焦点状态时单击任何按钮时,就会出现问题。由于焦点位于某个单元格上,因此单击按钮会在按钮Click事件之前触发CellEndEdit事件,并且由于我的代码,焦点移到了下一个单元格,而按钮单击根本没有触发。我想确保在单击按钮时不会触发编写为移至CellEndEdit函数中的下一个单元格的代码。

  1. 在GridView中编辑单元格,按Enter,焦点移至下一个单元格-正确
  2. 在GridView中编辑呼叫,单击任何按钮,焦点移至下一个单元格,未触发按钮单击事件-问题

关于此问题,我在SO和Internet上进行了大量搜索,但找不到永久性的解决方案。任何帮助将不胜感激。

奥菲尔·怀恩花园

覆盖ProcessCmdKeyform,检查是否CurrentCell处于编辑模式和Enter被点击:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Enter && this.dataGridView.IsCurrentCellInEditMode)
    {
        if (this.dataGridView.CurrentCell.ColumnIndex != this.dataGridView.Columns.Count - 1)
        {
            //this.BeginInvoke(new MethodInvoker(() =>
            //{
                this.dataGridView.CurrentCell = this.dataGridView.CurrentRow.Cells[this.dataGridView.CurrentCell.ColumnIndex + 1];
            //}));
        }
        return true;
    }
    else return base.ProcessCmdKey(ref msg, keyData);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Messagebox的Datagridview中单击一个单元格时如何显示下一个单元格的值

单击按钮时的下一个单元格

如何通过输入将焦点放在剑道网格中的下一个单元格上

Swift - 是否可以通过单击按钮移动到 tableview 中的下一个单元格?

在TD中单击-访问下一个单元格

Excel VBA - 在 VBA 中设置值时测试翻转到下一个空白单元格

按下“Enter”按钮时如何将焦点设置在下一个输入上?(javascript)

如何从上一个单元格中减去下一个单元格

移至另一个文档中的下一个单元格

清除单元格内容阻止添加下一个按钮

左下一个单元格具有“粘贴日期”功能的命令按钮

复制下一个单元格并粘贴到同一单元格上

Excel:下一个单元格的值

搜索下一个空单元格

查找范围为零的单元格并删除下一个单元格宏

如何在下一个表格单元格中使用 Tab 键按下设置焦点输入

WinForms设置下一个TextBox控件为焦点时的标签前景色

选择新的或下一个单元格时进入编辑模式

在单列中填充范围内的单元格,但仅填充下一个空白单元格

根据所选单元格从范围中返回下一个单元格值

在 Swift 中获取 UIcollectionView 中的下一个单元格

如何通过单击 UITableView 的上一个单元格来解锁下一个单元格?

将焦点设置为Xamarin表单中的下一个条目

如何在下一个单元格中显示公式 - Libreoffice

范围中的下一个非空白单元格

UITableViewController返回单元格中的下一个文本字段

使用querySelector查找同级行中包含的下一个单元格

激活 Google 表格中下一个空行 A 列中的单元格

如何使用JavaScript删除表格中的下一个单元格?