经典的 Win32 ListView 支持增量搜索:您可以开始键入一个项目的名称来搜索它。但要比这复杂一些。
要知道,人们期望的键入到搜索的工作方式不止一种。在一种模式中,你输入想要的东西的第一个字母,系统就会找到以该字母开头的第一个项目。如果这不是你想要的,你再按一次相同的字母,系统就会找到以该字母开头的第二个项目。继续按同一个字母,直到找到你想要的项目。这就是 Windows 1.0 中列表框搜索的工作方式。
另一种模式是键入所需内容的第一个字母,系统就会找到以该字母开头的第一个项目。如果这不是你想要的,那么键入你想要的东西的第二个字母,系统就会找到前两个字母与你键入的字母相匹配的第一个项目。不断输入更多字母,直到找到你想要的项目。
经典的 Win32 ListView 控件应使用哪种模式?
如果您反复键入相同的字母,那么经典 Win32 ListView 会认为您使用的是第一种模式,而且每次您再次按下相同的字母时,它都会选择以该字母开头的下一个项目。但是,如果您键入的是不同的字母,那么经典的 Win32 ListView 会认为您键入的是前缀,并选择以该前缀开头的第一个项目。
例如,假设您有一个包含以下项目的 ListView:
- Cougar
- Leopard
- Lemur
- Lion
- Llama
- Tiger
输入 “L”,就会选择列表中第一个以 “L “开头的动物 “Leopard“。
由于现在是两个 L,Win32 ListView 处于 “重复字母 “模式,它选择了第二个 L 动物,即Lemur。
现在输入 A。这不再是同一个字母的重复,因此 Win32 ListView 切换到 “前缀 “模式,并选择第一个以 “LLA “开头的项目,即 Llama。
本文文字及图片出自 How does the classic Win32 ListView handle incremental searching?
你的反应是: