| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3936 人关注过本帖
标题:初用VB2008,关于timer控件和mouse_click事件
只看楼主 加入收藏
五面怪
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-30
收藏
 问题点数:0 回复次数:5 
初用VB2008,关于timer控件和mouse_click事件
小弟初用VB2008,给公司编写一个生产线信息显示的程序。有2个问题,请教各位高手。

1。我需要单击鼠标,让一个变量自动+1,并在label1.text上显示,我试用了form1.click事件和mouse_click事件,但都只在第一次点击鼠标左键后执行了+1的命令,以后在点就不管用了,不知道为什么。
2。我查资料timer控件没有暂停功能,每次重新开始就会重新开始计inv...那个设定的毫秒数,我需要他有暂停功能,不知如何能实现。
这个暂停的需求是因为,生产一个产品需要一个时间t,但从早上8:40分开始,每8:40+t就会一个num+1,但因为中间有休息,吃饭等长短不固定的中断时间,例如t=10分钟,9:55完成一个产品,产品数num=+1,下一个产品应该在10:05完成,但10:00~10:10休息,也就是下一个产品完成时间是10:15,我的timer控件设每过t时间,num自动加1,那么就需要它在10:00时暂停,10:10启动后不能那个Inv..的值从0开始计,否则这个产品的完成时间就变成10:20了,这会和第一个问题中由工人控制的那个变量自动加1的显示出现偏差。而这个程序的目的,就是要看工人的完成时间,和理论计算的差别,以便于生产的头们随时监控问题。
搜索更多相关主题的帖子: timer mouse click 控件 
2008-11-30 10:25
dingwz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-29
收藏
得分:0 
第一个问题:
定义的变量要用 static静态形式,否则每次重新定义都会被归零:
    Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
        Static i As Integer
        i += 1
        Label1.Text = i
    End Sub
否则就在form1_load 里定义public形式的变量用
2008-11-30 16:38
dingwz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-29
收藏
得分:0 
第二个问题:
需要定义一个变量,记录timer的值:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button1.Text = "开始" Then
            Button1.Text = "暂停"
            Timer1.Start()
        Else
            Button1.Text = "开始"
            Timer1.Stop()
        End If
    End Sub
    Public i, ProductCon As Integer
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        '1秒一计数
        i += 1
        '十秒增加产品增加1
        If i Mod 10 = 0 Then
            ProductCon += 1
        End If
        Label1.Text = "第" & ProductCon + 1 & "个产品完成还有" & 10 - (i Mod 10) & "秒"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '用于数值清零
        Timer1.Stop()
        i = 0
        ProductCon = 0
        Button1.Text = "开始"
        Label1.Text = "已停工"
    End Sub
2008-11-30 17:14
五面怪
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-30
收藏
得分:0 
多谢兄弟的回复,第一个问题,看了兄弟的代码,我就知道我错在忘了给变量+1,我只写了一句label1.text=a+1,我把两句揉到一句里了。多谢。
第二个问题,我正在试验,因为需要自动停止和开启,我不得不在设一个timer控件。
我想问问,我的程序基本已经出来了,但鼠标点击+1的事件只有在主窗口的form中点管用,当我运行3个form窗口滚动显示时,按鼠标就不管用了,有什么方法解决吗?
2008-12-01 12:30
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
有Timer了,就好办.设置它的Enable属性就可控件 停止和开启.

飘过~~
2008-12-01 12:56
dingwz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-29
收藏
得分:0 
楼主自己再想一想,我也是新手,你描述的不清,我还没想明白你遇到的新问题
2008-12-02 16:16
快速回复:初用VB2008,关于timer控件和mouse_click事件
数据加载中...
 
   



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

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