VB tabstrip控件 关闭选项卡的问题(高分求解!)
最近在搞一个多标签浏览器的开发,用的是visualbasic。目前多选项卡动态生成的问题已经搞定,但不知道怎么动态关闭选项卡~我想双击选项卡关闭,最好在选项卡上有叉叉按钮...
最近在搞一个多标签浏览器的开发,用的是visualbasic。目前多选项卡动态生成的问题已经搞定,但不知道怎么动态关闭选项卡~我想双击选项卡关闭,最好在选项卡上有叉叉按钮关闭。
但是tabstrip没有双击事件,也不能画叉叉~,怎么办啊?
求牛人给出解答!!谢谢 展开
但是tabstrip没有双击事件,也不能画叉叉~,怎么办啊?
求牛人给出解答!!谢谢 展开
2个回答
展开全部
我只会做双击关闭的
先在最上面写声明:
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim OldClickTime As Long
再在最下面建一个函数:
Function GetSelect(oTab As TabStrip) As Long
Dim a, b As Long
For Each a In oTab.Tabs
b = b + 1
If a.Selected Then
GetSelect = b
Exit Function
End If
Next
End Function
最后在TabStrip的Click事件里写:
If OldClickTime = 0 Then
OldClickTime = GetTickCount
Exit Sub
End If
If GetTickCount - OldClickTime < 300 Then
'上面的300是双击最大间隔
'数字越小,要求双击的速度越快;数字越大,双击很慢也会关闭
'经试验,300(毫秒)比较合适
TabStrip1.Tabs.Remove GetSelect(TabStrip1)
‘上一句的两个TabStrip1表示你的TabStrip
'请把它换成你要操作的TabStrip控件名
OldClickTime = 0
Exit Sub
Else
OldClickTime = GetTickCount
End If
PS:要叉叉按钮的话,需要自己画上去,要子类化窗口,监视WM_MOUSEUP事件,再判断是否在叉叉的范围里,是则关闭制定选项卡。这种方法相当麻烦,一不小心还会连VB IDE一起崩溃。
先在最上面写声明:
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim OldClickTime As Long
再在最下面建一个函数:
Function GetSelect(oTab As TabStrip) As Long
Dim a, b As Long
For Each a In oTab.Tabs
b = b + 1
If a.Selected Then
GetSelect = b
Exit Function
End If
Next
End Function
最后在TabStrip的Click事件里写:
If OldClickTime = 0 Then
OldClickTime = GetTickCount
Exit Sub
End If
If GetTickCount - OldClickTime < 300 Then
'上面的300是双击最大间隔
'数字越小,要求双击的速度越快;数字越大,双击很慢也会关闭
'经试验,300(毫秒)比较合适
TabStrip1.Tabs.Remove GetSelect(TabStrip1)
‘上一句的两个TabStrip1表示你的TabStrip
'请把它换成你要操作的TabStrip控件名
OldClickTime = 0
Exit Sub
Else
OldClickTime = GetTickCount
End If
PS:要叉叉按钮的话,需要自己画上去,要子类化窗口,监视WM_MOUSEUP事件,再判断是否在叉叉的范围里,是则关闭制定选项卡。这种方法相当麻烦,一不小心还会连VB IDE一起崩溃。
百事牛
2024-10-22 广告
2024-10-22 广告
百事牛是共享提供商,我们提供可靠有效的服务,适当合理的授权费有利于的继续更新优化。同样的事情,同样的方法,百事牛团队十年磨一剑,始终至聚焦在密码恢复领域,深耕于此,我们已研制出有别于其他公司的算法和运算模式, 百事牛的暴力模式加入了分布式点...
点击进入详情页
本回答由百事牛提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询