回 帖 发 新 帖 刷新版面

主题:[讨论]请问可用keyup运行progressbar吗?

看到Vb6的progressbar后, 突然有一个想法,就是想将它变成能源值 或是目标值等等。

form1入面有ProgressBar1和check1, 当check1.value=1后, 再按下command1, 之后只要按下键盘上的任何一个键, ProgressBar1的数值就会+1并用label1显示, 当数值够了, form2出现。 

请问一下, 如果我想设定按了特定的键(例如F3 / alt+F12)后ProgressBar1的数值才会+1, 应该怎样改?

------------------------------------------------------------------

Private Sub Command1_KeyUp(KeyCode As Integer, Shift As Integer)
Label1 = ProgressBar1.Value

If Check1.Value = 1 Then
ProgressBar1.Value = ProgressBar1.Value + 1
End If

If ProgressBar1.Value = 80 Then
Beep
Form2.Show
End If

End Sub


Private Sub Form_Load()

ProgressBar1.Value = 0

End Sub

回复列表 (共2个回复)

沙发

以下内容摘自MSDN6
keycode 是一个键代码,诸如 vbKeyF1 ( F1 键)或 vbKeyHome ( HOME 键)。要指定键代码,可使用对象浏览器中的 Visual Basic ( VB ) 对象库中的常数。 

shift 是在该事件发生时响应 SHIFT ,CTRL 和 ALT 键的状态的一个整数。shift 参数是一个位域,它用最少的位响应 SHIFT 键(位 0 )、CTRL 键(位 1 )和 ALT 键(位 2 )。这些位分别对应于值 1、2 和 4。可通过对一些、所有或无位的设置来指明有一些、所有或零个键被按下。例如,如果 CTRL 和 ALT 这两个键都被按下,则 shift 的值为 6。 

如果需要测试 shift 参数,可使用该参数中定义各位的 shift 常数。该常数有下列值:

常数 值 描述 
vbShiftMask 1 SHIFT 键的位屏蔽。 
VbCtrlMask 2 CTRL 键的位屏蔽。 
VbAltMask 4 ALT 键的位屏蔽。 


该常数用作位屏蔽。它可被用来测试任何键组合。

测试一个条件时,首先将每个结果分配给一个临时整数变量,然后将 shift 与一个位屏蔽进行对比。如下例,可用 And 运算符和 shift 参数一起来测试条件是否大于 0。该条件说明该修正键被按下:

ShiftDown = (Shift And vbShiftMask) > 0

可按此例在一个过程中测试任何条件的组合:

If ShiftDown And CtrlDown Then

板凳

[quote]以下内容摘自MSDN6
keycode 是一个键代码,诸如 vbKeyF1 ( F1 键)或 vbKeyHome ( HOME 键)。要指定键代码,可使用对象浏览器中的 Visual Basic ( VB ) 对象库中的常数。 

shift 是在该事件发生时响应 SHIFT ,CTRL 和 ALT 键的状态的一个整数。shift 参数是一个位域,它用最少的位响应 SHIFT 键(位 0 )、CTRL 键(位 1 )和 ALT 键(位 2 )。这些位分别对应于值 1、2 和 4。可通过对一些、所有或无位的设置来指明有一些、所有或零个键被按下。例如,如果 CTRL 和 ALT 这两个键都被按下,则 shift 的值为 6。 

如果需要测试 shift 参数,可使用该参数中定义各位的 shift 常数。该常数有下列值:

常数 值 描述 
vbShiftMask 1 SHIFT 键的位屏蔽。 
VbCtrlMask 2 CTRL 键的位屏蔽。 
VbAltMask 4 ALT 键的位屏蔽。 


该常数用作位屏蔽。它可被用来测试任何键组合。

测试一个条件时,首先将每个结果分配给一个临时整数变量,然后将 shift 与一个位屏蔽进行对比。如下例,可用 And 运算符和 shift 参数一起来测试条件是否大于 0。该条件说明该修正键被按下:

ShiftDown = (Shift And vbShiftMask) > 0

可按此例在一个过程中测试任何条件的组合:

If ShiftDown And CtrlDown Then

[/quote]
哈哈,先感谢
刚好今天我也解决了, 原来只要加 KeyCode = vbKey? 就可以了, 当初还在试ch = “?”

我来回复

您尚未登录,请登录后再回复。点此登录或注册