我有一个用 C# 编写的 .NET Winforms 应用程序,它带有一个 DataGridView,它是只读的并且填充了一定数量的行。例如,我希望具有类似于 Windows 资源管理器(和许多其他应用程序)的详细信息 View 的功能。
我希望 DataGridView 的行为使得当您开始键入时它具有焦点时,当前行选择将跳转到单元格 0(即行中的第一列)的(字符串)值开始的行与您输入的字符。
例如,如果我有一个包含 1 列和以下行的 DataGridView:
- 鲍勃
- 简
- 贾森
- 约翰
- 乐华
- 山姆
如果 DataGridView 具有焦点并且我按下键盘上的“b”键,则所选行现在是“Bob”。如果我快速输入键“ja”,则所选行是 Jane。如果我快速输入字母“jas”,则所选行是 Jane。如果我按下“z”键,则不会选择任何内容(因为没有任何内容以 Z 开头)。
同样,如果 Jane 当前处于选中状态并且我一直输入字母“j”,每次我按下“j”键时,选择将循环到 Jason,然后是 John,然后返回到 Jane。
我一直在谷歌搜索(和“stackoverflowing”:-))一段时间,但找不到此类功能的任何示例。我脑子里有一个粗略的想法,通过某种短暂的计时器线程来执行此操作,收集 DataGridView 的 KeyPress 事件上的击键,并根据收集到的与 Cells[0].Value.StartsWith() 匹配的击键选择行条件类型。但似乎必须有一种我只是没有看到的更简单的方法。
如有任何想法,我们将不胜感激。谢谢!
最佳答案
我还没有在 DataGridView 上看到任何像这样的内置功能。我很确定你必须“自己动手”。
您是否正在寻找更简单的方法来对字符串进行“部分搜索”?
关于c# - 如何通过键入(Windows 资源管理器详细信息 View )跳转到 DataGridView 中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217541/