| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:关于窗体事件的疑问。
只看楼主 加入收藏
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
结帖率:96.77%
收藏
已结贴  问题点数:10 回复次数:8 
关于窗体事件的疑问。
窗体事件:
图片附件: 游客没有浏览图片的权限,请 登录注册

控件:1个Command按钮
核心代码:
程序代码:
Option Explicit
Dim a As String                 '设置全局变量a为字符串型(这样叫不知道对不对。。)
Private Sub Command1_Click()
Print a                         '单击Command1按钮,在Form1窗体上输出a
End Sub
Private Sub Form_Click()
Print "这是窗体的单击事件"      '单击窗体的空白区域,在Form1的窗体上输出:这是窗体的单击事件
End Sub
Private Sub Form_DblClick()
Print "这是窗体的双击事件"      '单击窗体的空白区域,在Form1的窗体上输出:这是窗体的双击事件
End Sub
Private Sub Form_Load()
a = "这是窗体的Load事件"  
      '将"这是窗体的Load事件"这句话赋值给a
End Sub
3个问题:
Q1:在Option Explicit声明一个变量,是不是得叫全局变量?平常在过程中声明的变量,叫过程变量?或者简单点就是变量?
A1:
Q2:Form_Clikc也就是单击事件,如何用代码判断是按的鼠标左键还是右键?双击事件同样的问题。
A2:
Q3:将
a = "这是窗体的Load事件" 
这句代码改为:
print "这是窗体的Load事件"
之后,为何窗体加载到内存时,也就是触发Load事件的时候,并没有在窗体上输出那句话?
A3:
搜索更多相关主题的帖子: color 
2014-03-20 21:46
w360989426
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:228
专家分:301
注 册:2013-11-12
收藏
得分:3 
问题1:全局变量 是public,过程变量:在过程开始之前 dim,模块变量 private
问题2:一般窗体只提供左键单击事件,不提供右键单击。右键点击为菜单弹出,你可以去菜单编辑器看看
问题3,将 print 改为msgbox
2014-03-20 22:49
owenlu1981
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:211
专家分:1130
注 册:2013-5-17
收藏
得分:3 
A2: Click事件都是按左键才会执行,如果非要判断左右键就用 Mouse_Down事件
A3:在Print前增加一条 Form1.Show就OK了
2014-03-20 23:12
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:4 
1、vb里的变量分全局变量和局部变量。全局变量是使用 public 在 模块文件(bas)定义的,整个工程范围内可见。其它变量都有作用范围,在范围内可见,使用dim 在窗体定义的变量等同于pritave定义的,整个窗体可见,而在窗体使用 public 定义的变量 理解为给窗体增加 属性 ,可以使用 窗体.变量名 进行全局访问,但还不是全局变量。
2、区分左右键,使用 mousedown 、mouseup 事件。
3、窗体自动重绘默认情况下是关闭,所以在窗体未显示之前在窗体上的绘图操作会无法看到结果。有两种方法:一是自动重绘开,另一种是让窗体先显示出来,再绘 图。可以使用命令 me.show 让窗体在load 阶段就显示出来。

授人于鱼,不如授人于渔
早已停用QQ了
2014-03-21 00:33
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
收藏
得分:0 
非常感谢楼上的所有回答,对本人VB编程知识的积累非常有帮助!再次表示感谢!
对1.2楼的回答无异议,感谢你们的回答。
3L版主,第二条“区分左右键,使用mousedown、mouseup事件。”这个总感觉不对呢?
Mousedown事件即,鼠标按下时发生的事件,Mouseup事件是鼠标按下然后弹起时发生的事件。这个怎么能区分左右键呢?
我按您的方法修改了代码。
修改后的程序:
图片附件: 游客没有浏览图片的权限,请 登录注册

核心代码:
程序代码:
[color=#0000FF]Option Explicit
Dim a As String
Private Sub Command1_Click()
Print a
End Sub
Private Sub Form_Click()
Print "这是窗体的单击事件"
End Sub
Private Sub Form_DblClick()
Print "这是窗体的双击事件"
End Sub
Private Sub Form_Load()
a = "这是窗体的Load事件"
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print "左击?"                              '在鼠标按键(不管是左右)按下时,在窗体上输出“左击?”
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print "右击?"                              '在鼠标按键(不管是左右)按下然后弹起时,在窗体上输出“右击?”
End Sub
故,实际测试,您的所说并不能判断是按下的鼠标左键还是右键。[/color]

编程最蛋疼的事:不是编程多么累,而是编完后,一点运行,出现四个字:程序错误。。。
2014-03-21 18:22
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
回复 5楼 VB丶小宇
通过判断button值;来区分左右键,button=1左键,button=2右键,button=4中键
2014-03-21 18:40
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
收藏
得分:0 
回复 6楼 lowxiong
非常感谢您的回答。。这个帖子给不了分了,其他帖子给分把。再次感谢!
按照您的代码解决了我的问题:
图片附件: 游客没有浏览图片的权限,请 登录注册

核心代码:
程序代码:
Option Explicit
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then             '使用If语句进行判断,如果在满足Button值为1的情况下,执行后面的代码
Print "您按下了左键"           '在窗体上输出“您按下了左键”
ElseIf Button = 2 Then         '使用Elseif语句再进行判断,如果在满足Button值为2的情况下,执行后面的代码
Print "您按下了右键"           '在窗体上输出“您按下了右键”
Else                           '否则,即在以上条件均不满足的情况下,执行后面的代码。
Print "您按下了中键"           '在窗体上输出“您按下了中键”
End If                         '结束If语句
End Sub
PS:鼠标不就3个键吗?左右中,Button的值分别对应的是1,2,4。。中干嘛是4啊..3多好

编程最蛋疼的事:不是编程多么累,而是编完后,一点运行,出现四个字:程序错误。。。
2014-03-21 19:28
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
因为还有同时按下左右键的情况。



-------

其它是开关位转为10进制的问题,
第1位  1   2^0
第2位  2   2^1
第3位  4   2^2
第4位  8   2^3
........

授人于鱼,不如授人于渔
早已停用QQ了
2014-03-22 12:41
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
收藏
得分:0 
回复 8楼 风吹过b
感谢您的回答,问题集解决,谢谢。

编程最蛋疼的事:不是编程多么累,而是编完后,一点运行,出现四个字:程序错误。。。
2014-03-22 21:03
快速回复:关于窗体事件的疑问。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021979 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved