【发布时间】:2010-04-26 10:10:40
【问题描述】:
我有一个包含多列的 ListView,假设 A、B、C、D 列按 A、B、C、D 列的顺序排列,按 A 列排序。在长列表中,我可以按键盘上的一个字母并向下滚动到列中的第一项以按下的字母开头的 A。
在开头插入了一个新列,但我仍然希望能够按键盘上的一个字母并根据 A 列(现在是第二列)中的值滚动。如何将焦点设置回 A 列而不使其成为第一列?
【问题讨论】:
标签: c# listview navigation
我有一个包含多列的 ListView,假设 A、B、C、D 列按 A、B、C、D 列的顺序排列,按 A 列排序。在长列表中,我可以按键盘上的一个字母并向下滚动到列中的第一项以按下的字母开头的 A。
在开头插入了一个新列,但我仍然希望能够按键盘上的一个字母并根据 A 列(现在是第二列)中的值滚动。如何将焦点设置回 A 列而不使其成为第一列?
【问题讨论】:
标签: c# listview navigation
击键匹配总是发生在第一列,即Index = 0 的列。如果您的新列(称为 E 列)现在是第一列,则会在其上进行文本匹配。
您可以更改列的显示顺序,通过在列上使用DisplayIndex 属性,使列 E 简单地出现在列 A 之前。
因此,要使 E 列显示为第一列,A 列显示为第二列,并且要在 A 列上进行文本搜索,您需要设置如下属性:
A 栏: 索引 = 0 显示索引 = 1
E 栏: 索引 = 1 /* 或 5 或其他 */ 显示索引 = 0
【讨论】: