主题:关于combobox提示信息
Chengyang-vb
[专家分:0] 发布于 2003-08-18 23:08:00
请教各位大虾和版主:
我在combobox里添加了一些项目,项目字数多少不一,所以有些项目在combobox中显示不完全,由于其他原因又不能把combobox控件设得太宽,我想这个问题的解决方法可以如下:
1.动态增加combobox的下拉宽度
2.当鼠标移动到combobox某一项时,显示tipoftext
可是这两种方法我都不会,哪位能帮帮我啊?太感谢啦!
回复列表 (共8个回复)
沙发
z.xh [专家分:670] 发布于 2003-08-19 10:17:00
要用到API函数。
3 楼
师师 [专家分:0] 发布于 2003-08-22 08:52:00
如果你连函数都不知道是怎样用的话,我建议你去买一些关于函数的书籍来看看,或者上网下载
4 楼
Chengyang-vb [专家分:0] 发布于 2003-08-22 22:11:00
师师:
看你牛比烘烘的,我说的问题,你能给个答案吗?我看未必!
5 楼
z.xh [专家分:670] 发布于 2003-08-23 10:07:00
以下转载自《 Visual Basic 案例教程》,仅供学习研究,不要用于其他用途:
'
'----------------------By 陈锐------------------------------
'如果你要在Internet或BBS上转贴文章,请通知我知道
'Email: blackcat@nease.net develope@163.net
'请参观我的站点 http://www.nease.net/~blackcat
'这个程序演示如何给List Box的每个列表行加上不同的提示行
'运行该程序,当鼠标移动到任一行上后,弹出的ToolTip就会提示该行的完整内容
'
Option Explicit
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
Private Const LB_ITEMFROMPOINT = &H1A9
Private Sub Form_Load()
'初始化列表框
With List1
.AddItem "清华大学"
.AddItem "北京大学"
.AddItem "复旦大学"
End With
End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Dim lXPoint As Long
Dim lYPoint As Long
Dim lIndex As Long
'如果没有按钮被按下
If Button = 0 Then
'转换坐标单位
lXPoint = CLng(X / Screen.TwipsPerPixelX)
lYPoint = CLng(Y / Screen.TwipsPerPixelY)
With List1
'获得当前光标所在位置所对应的项目
lIndex = SendMessage(.hwnd, LB_ITEMFROMPOINT, 0, _
ByVal ((lYPoint * 65536) + lXPoint))
'显示提示行或清除提示行
If (lIndex >= 0) And (lIndex <= .ListCount) Then
.ToolTipText = .List(lIndex)
Else
.ToolTipText = ""
End If
End With
End If
End Sub
6 楼
Chengyang-vb [专家分:0] 发布于 2003-08-27 22:09:00
z.xh兄:
谢谢你的指点,我还想知道,在combo中如何实现tooltiptext呢?也就是说,要捕获鼠标在combo中滚动到某一项目的位置,应该在combo的哪个事件里写代码呢?
7 楼
lostionsoft [专家分:50] 发布于 2003-08-28 09:38:00
用mousemove事件试试看。
8 楼
Chengyang-vb [专家分:0] 发布于 2003-08-30 16:00:00
combo中是没有mousemove的啊!
我来回复