c# - 在用户按键上搜索数据 GridView

标签 c# .net winforms datagridview keypress

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

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

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# - 在用户按键上搜索数据 GridView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/797946/

相关文章:

c# - 在构造函数中引用 "this"可以吗?

C# 泛型 : default non-null value for member

c# - 使用代码隐藏堆叠列系列在 WPF 图表上旋转独立轴标签

c# - OData 客户端 $expand 不工作

C# - 使用 lambda 表达式或 LINQ 填充列表

.net - .NET 库中是否有稀疏数组实现?

.net - 为什么 Math.Round(2.5) 返回 2 而不是 3?

.net - .NET 中最接近 pyparsing 的是什么?

c# - 得到错误变量 <variable name> 未声明或从未分配

winforms - 格式化 WinForm 标签中的文本