中易网

vb中的一些问题

答案:1  悬赏:30  
解决时间 2021-03-07 05:42
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'上面的KeyCode和Shift是什么
Dim ShiftDown, AltDown, CtrlDown '这个Dim语句后面怎么没有As …
Dim txt As String
ShiftDown = (Shift And vbShiftMask) > 0 '
'上面的And是什么意思,vbShiftMask是不是就是vb中代表键盘上Shift键的常数,那么上面的代码中的Shift的值是多少,为什么要用括号,后面大于0是什么意思,而且0的后面有“'”这个东西,又是什么意思??
AltDown = (Shift And vbAltMask) > 0 '
CtrlDown = (Shift And vbCtrlMask) > 0 '
If KeyCode >= 48 And KeyCode >= 105 Then '这里的数值又是哪里来的
If ShiftDown And AltDown And CtrlDown Then
txt = "Shif+Alt+Ctrl"
ElseIf ShiftDown And AltDown Then
txt = "Shif+Alt"
ElseIf ShiftDown And CtrlDown Then
txt = "Shif+Ctrl"
ElseIf CtrlDown And AltDown Then
txt = "Ctrl+Alt"
ElseIf ShiftDown Then
txt = "shif"
ElseIf AltDown Then
txt = "Alt"
ElseIf CtrlDown Then
txt = "Ctrl"
ElseIf Shift = 0 Then
txt = ""
End If
txt = txt + Chr(KeyCode)
Lbl1.Text = "您按下了" + txt
End If 'if语句里是不是可以省略elseif的部分,这个end if 所对应的if语句好像没有elseif的部分
End Sub

还有,当选择有些事件的时候,后面括号里怎么有定义变量:
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
这个,Button,Shift,X,Y有什么用
最佳答案
keycode是按键代号,就是触发事件时候你按下的是什么键的代码
shift就是特殊键的状态,包括alt,ctrl,shift等。
ShiftDown = (Shift And vbShiftMask) > 0 '
这句是一个逻辑赋值语句。曾经我类似的回答了某人被判“错误”- -
这句的意思是先计算(Shift And vbShiftMask) > 0的逻辑值

用and 呵呵~~ 因为他是以2,4,8,16,32为系列,因此任何几个情况(如shift+ctrl)都能够表示出来(唯一的,如2+4=6 其它任何组合都达不到6)
程序中就是这样表示的

那么这里就是先判断是否按下了shift,如果按下了shift,那么(Shift And vbShiftMask) > 0这句就是true,否则是false(逻辑语句)
同时把true,false赋值给shiftdown。也就是按下shift,那么shiftdown=true,没有按下,那么就是false。

If KeyCode >= 48 And KeyCode >= 105:
你可以自己写一个msgbox keycode
然后自己一个一个键按过去就知道48是哪个键,105是哪个键,中间是哪些了

'if语句里是不是可以省略elseif的部分,这个end if 所对应的if语句好像没有elseif的部
这里的end if对应的是If KeyCode >= 48 And KeyCode >= 105这句。对 可以没有else,可以没有else if。都是可选选项。你可以不写如果你不处理其它内容的话。

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
这个,Button,Shift,X,Y有什么用

这里是返回值。当form上鼠标弹起的时候,button就是按下哪个键弹起的,shift就是辅助状态,x就是鼠标在窗体上的x坐标,y就是…………

你可以这样写
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.print "Button=";button,"Shift=";shift,"X=";x,"Y=";y
end sub

这样你在form上鼠标移动的时候你就知道具体数据了(可以按下鼠标)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
四分之一年有几个月
秦孝公支持的商鞅变法有何作用?
你好,请问我在一家面馆上班吗?一天上十一个
水浒传中时谦的绰号,和名字,其擅长的绝技
加入星链云店的话,请问一下可以不
珺瑶是什么意思
只有离婚后丈夫欠的钱妻子就不管了
游戏王炎星出的什么烂水浒啊,武松居然这样,哎
新帅制衣我想知道这个在什么地方
23岁是买重大疾病险还是理财保险好
泰坦尼克号的萝丝是谁演的
哪里可以刷视频的播放量点击量?
鸿运五金机电总汇在哪里啊,我有事要去这个地
求星际争霸2的本子
怎样弄连接360随身WIFI啊,Dr.com客户端的如
推荐资讯
湘运宾馆在什么地方啊,我要过去处理事情
龙岗区小博士教育地址在什么地方,想今天过去
石油产品和原油有什么区别?石油产品和原油的
郑州四十七中高中部怎样?(郑东新区那个)大
大串烤肉店怎么去啊,有知道地址的么
新魔界诅咒的魔法神殿副本怎么搞 请高手讲一
在SMT中TMC/TMD是什么意思?他们之间是什
出嫁的女儿有权回家争房产吗?
大家好,有一首英文歌,是女声,声音很轻柔很
纵使你有千般不好 纵使万劫不复依然相思入骨
有北京西到枣庄的火车吗
G324/YH49(路口)地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?