【问题标题】:Focus not setting on DataGridView on Button Preview KeyDown Event按钮预览 KeyDown 事件上的焦点未设置在 DataGridView 上
【发布时间】:2015-05-20 06:28:41
【问题描述】:

在按钮刷新上按 Tab 键将焦点设置在下拉列表上,但是当网格数据源不为空时,我需要将焦点设置在复选框列和网格的第一行,否则下一个控件,但是它只选择给定的单元格.我已经按顺序设置了tabIndex属性,请告诉我我错在哪里,这是我的代码:

private void btnRefresh_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
  if (e.KeyCode == Keys.Tab)
  {
     if (grid.DataSource != null)
     {
       grid.Focus();
       grid.CurrentCell = this.grid[1, 0];
       grid.CurrentCell.Selected = true;
       grid.BeginEdit(false); 
     }
     else
     {
       btnCancel.Focus();
     }
   }
}

【问题讨论】:

    标签: c# datagridview tabindex keyboard-navigation


    【解决方案1】:

    你看到这个post了吗? 似乎您对索引的使用是 Grid[x,y]。

    试试

    grid.Rows[1].Cells[0]
    

    但是,这只会选择单元格(顺便说一下,第一个单元格,第二行)。 如果要选择整行,请尝试

    grid.Rows.First().Selected = True
    

    希望对你有帮助。

    【讨论】:

    • 是的,我之前尝试过这种方式,然后我改成这个,它只是选择网格单元格而不是设置焦点:(
    • 尝试在最后一行执行焦点命令。 ... if (grid.DataSource != null) { ... grid.BeginEdit(false); grid.Rows.First.Focus() }
    • 你确定这是有效的 grid.Rows.First.Focus() 吗?没有这样的方法显示
    • 你是对的。所以整行是不可聚焦的。但是你的 grid.BeginEdit(false) 不是没有焦点吗?当我读到msdn.microsoft.com/en-us/library/… 时,它有点暗示。尝试删除该行,看看它是否会聚焦。
    • 我在看到类似帖子的某处后添加了这一行,删除了该行但没有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多