首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView多选行为?

ListView多选行为?
EN

Stack Overflow用户
提问于 2010-12-08 11:33:01
回答 1查看 525关注 0票数 0

Comtl32.dll v6.0中的ListView执行多项选择(使用Shift键时),如下所示(x表示已选中)

代码语言:javascript
复制
00xxxx
xxxxxx
xxxx00

早期版本的ListView按如下方式执行此操作:

代码语言:javascript
复制
00xx00
00xx00
00xx00

有没有办法让它采用第一种方式( comctl32 v6.0方式)?

谢谢约翰

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-08 14:18:15

简短的回答是不。,但因为这看起来不完整...

ListView不公开允许您更改其选择行为的API,正如Hans在他的评论中间接地指出的那样,要更改ListView控件的行为,唯一的方法是使用时间机器。ListView控件中内置了许多关于选择事件的独特行为,因此,即使您尝试由所有者绘制控件来修改选择行为的外观,您也会突然面临必须处理数量惊人的窗口消息的问题,这些消息可能会导致选择的更改。

同样值得指出的是,这个问题在完全不同的层面上是被误导的。如果您的应用程序的用户正在运行的Windows版本包含早于版本6.0的comctl32.dll,则这是他们在ListView控件之外所期望的行为。覆盖和更改它只会让他们感到困惑,因为它不会像在他们的计算机上找到的所有其他ListView控件一样工作。相比之下,如果应用程序的用户运行的Windows版本包含comctl32.dll v6或更高版本,则默认情况下,ListView控件将按照您所描述的那样运行。(您不应该因为完全相同的原因而想要更改它。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4383918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档