C#Datagridview选定行

C#Datagridview选定行,c#,datagridview,selectedindex,C#,Datagridview,Selectedindex,我有一个datagridview,在这里我实现了一个搜索功能。通过在datagridview处于焦点时输入字符,将选择包含字符的网格的第一行 我使用: dtgView[index].Selected = true; dtgView.FirstDisplayedScrollingRowIndex = index; 该行被选中,但当我按向上或向下箭头从选中的行向上或向下导航时,datagridview从datagrid中的行索引0开始,而不是从新选中的行开始 这是OP的原始代码/方法 privat

我有一个datagridview,在这里我实现了一个搜索功能。通过在datagridview处于焦点时输入字符,将选择包含字符的网格的第一行

我使用:

dtgView[index].Selected = true;
dtgView.FirstDisplayedScrollingRowIndex = index;
该行被选中,但当我按向上或向下箭头从选中的行向上或向下导航时,datagridview从datagrid中的行索引0开始,而不是从新选中的行开始

这是
OP的
原始代码/方法

private void dtgView_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyValue >= 65 && e.KeyValue <= 90 )
    {
        searchStrings += e.KeyCode;
        for (int i = 0; i < dtgView.RowCount; i++)
        {
            if (dtgView.Rows[i].Cells[0].Value.ToString().
                Substring(0, searchStrings.Length) == searchStrings)
            {
                dtgView.ClearSelection();
                dtgView.FirstDisplayedScrollingRowIndex = i;
                dtgView.Rows[i].Selected = true;
                dtgView.Rows[i].Cells[0].Selected = true;
                break;
            }
        }
    }

}
private void dtgView\u KeyUp(对象发送方,KeyEventArgs e)
{

如果(e.KeyValue>=65&&e.KeyValue,则这是dtg上的我的密钥更新事件:

private void dtgView_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyValue >= 65 && e.KeyValue <= 90 )
            {
                searchStrings += e.KeyCode;
                for (int i = 0; i < dtgView.RowCount; i++)
                {
                    if (dtgView.Rows[i].Cells[0].Value.ToString().
                        Substring(0, searchStrings.Length) == searchStrings)
                    {

                        dtgView.ClearSelection();
                        dtgView.FirstDisplayedScrollingRowIndex = i;
                        dtgView.Rows[i].Selected = true;
                        dtgView.Rows[i].Cells[0].Selected = true;

                        break;
                    }
                }
            }

        }
private void dtgView\u KeyUp(对象发送方,KeyEventArgs e)
{

如果(e.KeyValue>=65&&e.KeyValue
Duta
,可能您可以显示完整的方法块这与事件有关。还要确保没有任何其他事件会根据按钮按键触发。2行代码在这里对任何人都没有任何好处。你想用什么键?我想你应该检查一下有没有更好的方法可以做到这一点,也许是这样,但这并不能解决我的sele问题我想你需要把
if语句中的代码改成下面的
if((e.Key>=Key.a)| |(e.Key)|(e.Key)对不起,这是我第一篇关于stackoverflow的帖子。