Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向下和向上箭头键不在DataGridView中滚动当前单元格_C#_Winforms - Fatal编程技术网

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

C# 向下和向上箭头键不在DataGridView中滚动当前单元格,c#,winforms,C#,Winforms,我正在开发一个windows窗体,其中包含两个控件Textbox和Datagridview 现在,当我第一次打开表单时,焦点应该在textbox上,如果我键入了一些内容,它应该附加在textbox中 如果我按下向上/向下箭头键则焦点应在DataGridview上,突出显示应移到下一行 但问题是它只将焦点设置为gridview,而不选择下一行。下一次按键时,它向下/向上滚动。如果焦点位于GridView和上,并且如果我开始输入字母,它应该被附加到文本框文本中,但是这里它也只将焦点设置为TextBo

我正在开发一个
windows窗体
,其中包含两个控件
Textbox
Datagridview

现在,当我第一次打开表单时,焦点应该在textbox上,如果我键入了一些内容,它应该附加在textbox中

如果我按下
向上/向下箭头键
则焦点应在
DataGridview
上,
突出显示
应移到下一行

但问题是它只将焦点设置为
gridview
,而不选择下一行。下一次按键时,它向下/向上滚动
。如果焦点位于
GridView
上,并且如果我开始输入字母,它应该被附加到文本框文本中,但是这里它也只将焦点设置为
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++;
                    }
                }

            }

您面临的问题是,您正在更改
当前单元格
而不是,但是
所选单元格

试试这个:

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

你有代码的例子吗。。?另外,您是否设置了类似于
控件.Focus()?
的设置,以及在DataGridView中键入时使用的事件。。?