怎样在VB组合框中实现单击不同内容而弹出不同的下拉列表?
VB组框中,有一行文本。水果蔬菜。怎样实现击水果时下拉列表弹出苹果,葡萄,香蕉列表。而单击蔬菜时下拉列表弹出白菜,西红柿,土豆。...
VB组框中,有一行文本。水果蔬菜。怎样实现击水果时下拉列表弹出苹果,葡萄,香蕉列表。而单击蔬菜时下拉列表弹出白菜,西红柿,土豆。
展开
3个回答
2013-07-16
展开全部
简单的就用两个组合框,位置放在一起,把这些都事先添加好成员,然后点击水果,则显示水果那个下拉框,隐藏蔬菜那个下拉框,反之则一样~复杂一点的话,就是每次点击都清空内容,在判断选择的是水果还是蔬菜,再循环添加成员,这种相对比较麻烦,但是就比较整洁一点~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-16
展开全部
可能是由于避免混乱的原因吧, ComBoBox没有提供OnMouseDown及OnMouseUp这些关键的鼠标消息,而且实际上ComBoBox控件的内部是由一个ThunderComboBox控件及一个EDIT控件组成的,上边的这些鼠标消息是由ThunderComboBox收到父窗口的通知时(比如鼠标消息)再转发给EDIT处理的. 因此只要对ThunderComboBox 挂上个消息勾子判断并处理 WM_PARENTNOTIFY 消息就可以处理鼠标消息了, 这样做吧,新建个工程测试下,需要一个窗体及一个标准模块,内容如下:Module1.bas 标准模块的内容: Public wnd As Long
Function Callback(ByVal hwnd As Long, ByVal Message As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case Message
Case WM_PARENTNOTIFY
If (wParam And &HFFFF) = WM_LBUTTONDOWN Then
On Error Resume Next
Callback = 1
Call Form1.ComboBox1_MouseDown '
Exit Function
End If
End Select
Callback = CallWindowProc(wnd, hwnd, Message, wParam, lParam)
End Function // 窗体的内容: Public Sub ComboBox1_MouseDown() End Sub Private Sub Form_Load()
wnd = GetWindowLong(Combo1.hwnd, GWL_WNDPROC)
SetWindowLong Combo1.hwnd, GWL_WNDPROC, AddressOf Callback
End Sub
按照上边的方法, 在 ComboBox1_MouseDown 里,像你上边说的,单击时选定文件再判断就可以搞掂了.另外:应当注意!在VB里子类化处理消息很容易导致整个IDE崩溃,所以应注意经常保存工作成果.
Function Callback(ByVal hwnd As Long, ByVal Message As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case Message
Case WM_PARENTNOTIFY
If (wParam And &HFFFF) = WM_LBUTTONDOWN Then
On Error Resume Next
Callback = 1
Call Form1.ComboBox1_MouseDown '
Exit Function
End If
End Select
Callback = CallWindowProc(wnd, hwnd, Message, wParam, lParam)
End Function // 窗体的内容: Public Sub ComboBox1_MouseDown() End Sub Private Sub Form_Load()
wnd = GetWindowLong(Combo1.hwnd, GWL_WNDPROC)
SetWindowLong Combo1.hwnd, GWL_WNDPROC, AddressOf Callback
End Sub
按照上边的方法, 在 ComboBox1_MouseDown 里,像你上边说的,单击时选定文件再判断就可以搞掂了.另外:应当注意!在VB里子类化处理消息很容易导致整个IDE崩溃,所以应注意经常保存工作成果.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
invokescript的第一个参数是方法名,不带参数不带符号,第二个是参数集合。
invokescript("changefield",{"this.form"})
以上信息供参考。
invokescript("changefield",{"this.form"})
以上信息供参考。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询