如何在vba编程中实现当鼠标经过Listview控件中的item时,输出当前item的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在vba编程中实现当鼠标经过Listview控件中的item时,输出当前item的值?相关的知识,希望对你有一定的参考价值。

目前只知道此控件有一个属性selecteditem可以输出任意item值,但必须鼠标点击,而不是经过。因为我只想用鼠标经过的方式,快速获得经过项的料号,并将名字为此料号的图片显示出来,最终实现显示不同物件图片的效果。
本人最终通过API函数SendMessage实现了此功能,下面是详细代码
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const LVM_FIRST = &H1000&
Const LVM_HITTEST = LVM_FIRST + 18
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Type LVHITTESTINFO
pt As POINTAPI
flags As Long
iItem As Long
iSubItem As Long
End Type
'上面的代码放在所有程序最顶端,不能在sub里面
Private Sub ListView1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As stdole.OLE_XPOS_PIXELS, ByVal Y As stdole.OLE_YPOS_PIXELS)
Dim lvhti As LVHITTESTINFO
Dim lItemIndex As Long
Dim BigPic as string
lvhti.pt.X = X
lvhti.pt.Y = Y
lItemIndex = SendMessage(ListView1.hWnd, LVM_HITTEST, 0, lvhti) + 1
BigPic = ThisWorkbook.Path & "\pictures\"

参考技术A 可以用mousemove事件,listview控件没用过,如果是listbox控件的话,我可以帮你把代码写出来。追问

谢谢,你按listbox写一下,我试试能不能通用。

追答

Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
On Error Resume Next
Label1.Caption = ListBox1.List(Y \ ListBox1.Font.Size)
End Sub
这里假设用label1来显示
遗憾的是,如果一个界面显示不完的时候,也就是有滚动条的时候,当你拉动滚动条之后,显示会出错。

怎样在html中实现当鼠标悬停在不同的按钮上时显示不同的图片,麻烦各位了,谢谢

多个按钮,多张图片

很多种方法。用CSS可以实现,用JS也可以实现。主要看你是想实现个什么东西。如果是替换背景图片的话,用CSS的话,那就 修改:hover里的背景图片。so easy!简单的很。


CSS

a  background-image:url(1.jpg);
a:hover  background-image:url(2.jpg);


JS

$(".Demo").mouseover($(this).css("background-image","1.jpg"));
$(".Demo").mouseout($(this).css("background-image","2.jpg"));

参考技术A 百度搜索javascript轮播器代码 参考技术B 在title里面加个图片

以上是关于如何在vba编程中实现当鼠标经过Listview控件中的item时,输出当前item的值?的主要内容,如果未能解决你的问题,请参考以下文章

WPF:如何在拖动 ListView 项目时允许在 ListView 中使用鼠标滚轮滚动?

如何用VBA实现WORD批量替换?

如何在 VBA 中实现 Zip 功能?

如何在 Access VBA 中声明对 ActiveX“ListView”控件的引用?

vba模拟鼠标点击_利用VBA开发数据汇总工具

VBA如何将listview控件一并Copy到别的机子上