ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 清风_ll

[Excel 程序开发] [第47期]ListView控件及命令栏图标应用技巧--(已结)

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-27 16:59 | 显示全部楼层
原帖由 泓() 于 2009-5-27 13:47 发表
答题的会员中,好多未考虑以下这个问题:
当我们去改变 字段列宽时,当列宽的增大至Listview水平滚动条产生时,
再双击最后一列中的任一单元格时,这时文本框中的文本值并不是双击时该单元格的值
——也就是产生L ...

确实应该考虑,我也没注意

TA的精华主题

TA的得分主题

发表于 2009-5-27 17:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 泓() 于 2009-5-27 15:09 发表
这个问题,我在答题过程中的无意操作中发现的,


我的答案没有这个问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-27 20:22 | 显示全部楼层
原帖由 fdd 于 2009-5-27 17:27 发表


我的答案没有这个问题。

你的答卷也存在这个问题,呵呵.

TA的精华主题

TA的得分主题

发表于 2009-5-27 21:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-27 21:58 | 显示全部楼层
小fisher 实在可惜 代码能写到这份上
却栽倒于上移和下移功能的最后一刻

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-27 22:13 | 显示全部楼层
原帖由 泓() 于 2009-5-27 21:58 发表
小fisher 实在可惜 代码能写到这份上
却栽倒于上移和下移功能的最后一刻

呵呵,不必太在意得分,重要的是在这个过程中能够有所收获.

TA的精华主题

TA的得分主题

发表于 2009-5-27 22:27 | 显示全部楼层
[quote]原帖由 清风_ll 于 2009-5-27 20:22 发表
哦,发现了。以前小fisher说过此类问题(讨论另一个问题时),没在意,结果真的有影响。

[ 本帖最后由 fdd 于 2009-5-27 22:32 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-5-27 22:30 | 显示全部楼层
说得太好了,接下来我要好好研究他人的答卷,可以帮我提高一个层次的,
不懂时,我会提出来的,望 清风版主等不吝指教

TA的精华主题

TA的得分主题

发表于 2009-5-27 22:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 泓() 于 2009-5-27 21:58 发表
小fisher 实在可惜 代码能写到这份上
却栽倒于上移和下移功能的最后一刻

没仔细看题目中的图,按自己的理解来了 
能从大家的代码中得到很多启发已经很值了,比如fdd的screentoclient,还有yangchun88和清风版主分别用不同的方法实现的鼠标圈选。
清风版主说的“3、滚动ListView后,其上的文本框未能随之滚动或隐藏。”,这个效果实现起来有点麻烦,因为ListView没有滚动事件,检测滚动事件要用子类化,而excel中的子类化和Modeless窗体是一对矛盾,或者可以用计时器和GetScrollPos相结合模拟;滚动ListView后让文本框随之滚动也很麻烦,要达到比较理想的效果,就要让Frame控件的上边框不超出ListView的Header的下边框,左、下、右边框也不能超出Listview的客户区,涉及到一堆计算,想想头都晕 ,等有时间做做试试

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-28 21:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

VBA47期总结

本期共收到9份有效答卷,综合各份答卷情况,进行简单小结。

1、给命令按钮添加命令栏图标

通过为命令栏按钮(Type:=MsoControlButton)指定FaceID属性,可以为命令栏按钮添加一个命令栏图标,通过将命令栏按钮的Picture属性为用户窗体上的命令按钮的Picture属性赋值,可以为用户窗体上的命令按钮添加相应图示。
添加命令栏按钮的方式有两种方式:
A)直接在现有的命令栏中添加;
B)新建一个新的命令栏,并在其上添加。

2、列表项上移和下移功能

基本上都使用添加和删除的方法,就是在上一列表项之前或下一列表项之后添加选中列表项,然后删除选中列表项,而且都是逐个列表项进行

操作;刚刚突然想到一个问题,就是在选择较多个边续列表项时的效率问题,这个问题大家都没注意到(包括我)。

3、实现鼠标拖拉选择多行方法有

A)使用键盘事件keybd_event API函数实现(见7楼yangchun88 答卷)
B)通过确实第一个选中项及最后一个列表项实现(见18楼)

4、修改选中项

要修改选中项,需先通过HitTest方法确定鼠标双击项目,获取HitTest方法参数有以下方法:
A)在ListView控件的双击事件中,通过API函数GetCursorPos 获取鼠标坐标,并使用API函数ScreenToClient转换为客户区坐标;
B)获取Mouse事件中传递的参数。
在泓()的提醒下,发现该功能中部分答卷未注意Listview的滚动位置而存在缺陷,API函数GetScrollPos解决了该问题。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 01:27 , Processed in 0.054051 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表