向下和向上箭头键不滚动DataGridView中的当前单元格

时间:2013-02-01 10:03:46

标签: c# winforms

我正在开发一个windows form,其中包含两个控件TextboxDatagridview

现在,当我第一次打开表单时,焦点应该放在文本框上,如果我输入内容,它应该附加在文本框中。

如果我按下UP/Down arrow key焦点应该在DataGridview上,Highlight应该移到下一行。

但问题是它只将焦点设置为gridview,但不选择下一行。它滚动down/UP on next key press。如果焦点在GridViewif I start typing alphabets it should be appended to TextBox text上,则相同,但此处它也只将焦点设置为textbox,而在另一个按键上,它会开始在其中键入文字。

如何实现这个?

我使用的代码是:

 if (e.KeyCode== Keys.Down)
            {
                this.DgAppDetails.Focus();
                int index = DgAppDetails.CurrentCell.RowIndex;
                if (index != DgAppDetails.Rows.Count - 1)
                {
                    if (i == 0)
                    {
                        DgAppDetails.CurrentCell = DgAppDetails.Rows[index+1].Cells[0];
                        i++;
                    }
                }
            }

            else if(e.KeyCode==Keys.Up)
            {
                this.DgAppDetails.Focus();
                int index = DgAppDetails.CurrentCell.RowIndex;
                if (index != 0)
                {
                    if (i == 0)
                    {
                      DgAppDetails.CurrentCell = DgAppDetails.Rows[index - 1].Cells[0];
                        i++;
                    }
                }

            }

1 个答案:

答案 0 :(得分:0)

您遇到的问题是因为您正在更改CurrentCell而不是SelectedCells

试试这个:

DgAppDetails.SelectedCells.Clear();
DgAppDetails.SelectedCells.Insert(DgAppDetails.CurrentCell);