我正在尝试选择单元格值以用户按下的相同 keychar 开头的第一行。这就是给我带来麻烦的部分。

这是我处理事件的方式(使用工作解决方案 更新 ):

private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (Char.IsLetter(e.KeyChar))
    {
        for (int i = 0; i < (dataGridView1.Rows.Count); i++)
        {
            if (dataGridView1.Rows[i].Cells["Name"].Value.ToString().StartsWith(e.KeyChar.ToString(), true, CultureInfo.InvariantCulture))
            {
                dataGridView1.Rows[i].Cells[0].Selected = true;
                return; // stop looping
            }
        }
    }
}

我敢肯定这是我忽略的一些简单的事情,但对于我的生活,我无法弄清楚它是什么。

编辑

使用解决方案更新了代码

最佳答案

可能是大小写问题,Cells["Name"] 中的值是否以大写字母开头?尝试在两者上使用 ToUpper 或 ToLower;或者你可以尝试 StartsWith(e.KeyChar, true) 来忽略大小写。如果你想选择行,你会想要做 dataGridView1.Rows[i].Selected = true

关于c# - 在用户按键上搜索 datagridview,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/797946/

10-10 03:00