崔前辈,你好!vb中怎样才能使某个数据从0变成1,弹出一个对话框。1变0弹出另一个不同的对话框。
展开全部
以该变量为n为例
方法一:如果n改变的地方比较少,可以直接在改变该数据的语句上添加一个判别语句。
If newN = 1 and n = 0 Then
n = newN
Msgbox "a"
End If
If newN = 0 and n = 1 Then
n = newN
Msgbox "b"
End If
方法二:如果n改变的地方比较多,可以将n定义为一个属性而不是变量,在Let/Set中判别。这样只要n改变,就会进行判断。
'------------------------------以下代码适用于VB6.0
Private my_n As Byte
Public Property Get n() As Byte
n = my_n
End Property
Public Property Let n(ByVal vNewValue As Byte)
If vNewValue = 1 and my_n = 0 Then
my_n = newN
Msgbox "a"
End If
If vNewValue = 0 and my_n = 1 Then
my_n = newN
Msgbox "b"
End If
End Property
'------------------------------以下代码适用于VB.NET 2008
Private my_n As Byte
Public Property n() As Byte
Get
Return my_n
End Get
Set(ByVal value As Byte)
If value = 1 And my_n = 0 Then
my_n = value
MsgBox("a")
End If
If value = 0 And my_n = 1 Then
my_n = value
MsgBox("b")
End If
End Set
End Property
展开全部
楼上这么多前辈啊,幸会幸会!
我不知道LZ想用它做什么,也许有很多种途径可以解决,不一定非要监控这个变量。
既然你这么问,我就先这么例举几个方法吧:
1、用一个Timer控件,不停的检查这个变量的值,当然这个变量至少得是模块级(窗体级)的变量。这个方法的优点是代码量很小,很简单。但缺点很明显,首先是调试极不方便,当你按F8单步跟踪时,Timer事件的各种无脑触发会把你的思路搞的乱七八糟。其次是当这个变量值变化的很快、或者在同一个过程(函数)里会变更多次,期间又无DoEvents语句时,Timer事件是无法捕捉到它的变化的。
2、第二个方法没有上面的两个缺点,但需要你自己设计一个‘变量’ ——设计一个类(Class),在里面定义一个属性,用这个属性代替变量使用。在其属性的 Let Property() 过程里,判断0和1的变化,并弹出对话框。
其实,我的建议是尽量不要监控变量值的变化,想办法通过其它途径解决也许效果会更好。
我不知道LZ想用它做什么,也许有很多种途径可以解决,不一定非要监控这个变量。
既然你这么问,我就先这么例举几个方法吧:
1、用一个Timer控件,不停的检查这个变量的值,当然这个变量至少得是模块级(窗体级)的变量。这个方法的优点是代码量很小,很简单。但缺点很明显,首先是调试极不方便,当你按F8单步跟踪时,Timer事件的各种无脑触发会把你的思路搞的乱七八糟。其次是当这个变量值变化的很快、或者在同一个过程(函数)里会变更多次,期间又无DoEvents语句时,Timer事件是无法捕捉到它的变化的。
2、第二个方法没有上面的两个缺点,但需要你自己设计一个‘变量’ ——设计一个类(Class),在里面定义一个属性,用这个属性代替变量使用。在其属性的 Let Property() 过程里,判断0和1的变化,并弹出对话框。
其实,我的建议是尽量不要监控变量值的变化,想办法通过其它途径解决也许效果会更好。
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里不是很明白你的意思,你在改变该数据的语句后面添加一个判别语句不就可以实现了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
清加一个弹出消息框就行了啊msgbox
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-08
展开全部
如果是在程序中可以用Timer控件来实施探测和预警。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询