如何自动关闭弹出的提示框?

xiafan 2007-02-11 03:52:25
一共有两个问题。
一,如果让软件自动引发 Button1_Click 事件?
我在定时器的 Timer1_Tick 里是这样写的,也能执行,但不知道科学的,正常的是如何操作的?
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Button1_Click(Button1, e)
End If

二,因为我是用定时器来工作的,在 Button1_Click 事件里会有一个弹出的提示框,此时,如若不点击它,定时器就无法继续工作了。我该如果自动关闭它?就像瑞星杀毒软件升级包完成之后的效果。
弹出的提示框就用 MESSAGEBOX.SHOW 生成的。

以上两个问题,请各位帮帮忙,指点一二,谢谢!
...全文
493 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vinsonhwj 2007-02-12
  • 打赏
  • 举报
回复
代码要改一下改成一下的
Dim Times As Int32 = 3 '3秒后自动关闭
Dim BornTimes As Int32 = Times
Dim Display As Boolean = False

不过我觉得你试下用多线程的方法来处理你所提出的问题会比较好,用额外线程的事件来触发过程。
vinsonhwj 2007-02-12
  • 打赏
  • 举报
回复
下面代码我刚才写的可以通过,其实问题在于你TIMER控件用得不对应该用System.timers控件而不是System.Windows.Forms里面的Timer控件。
-------------------------------------------------------------------------------
Dim BornTimes As Int32 = Times
Dim Display As Boolean = False
Dim Times As Int32 = 3 '3秒后自动关闭

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("VinsonHwj")
End Sub

Private Sub Timer1_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
If Display = False Then
Display = True
Me.Button1.PerformClick()
End If

Me.Times -= 1
If Me.Times = 0 Then
SendKeys.Send("{ENTER}")
Me.Times = BornTimes
End If
End Sub
xiafan 2007-02-12
  • 打赏
  • 举报
回复
不行,用后一种方法,那个按钮的事件不能产生。

再帮帮我吧。
hzybc 2007-02-12
  • 打赏
  • 举报
回复
二,因为我是用定时器来工作的,在 Button1_Click 事件里会有一个弹出的提示框,此时,如若不点击它,定时器就无法继续工作了。我该如果自动关闭它?就像瑞星杀毒软件升级包完成之后的效果。
弹出的提示框就用 MESSAGEBOX.SHOW 生成的。


不要用 MESSAGEBOX.SHOW ,改用Label 控件来提示
hzybc 2007-02-12
  • 打赏
  • 举报
回复
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Call Button1_Click(sender, e)
End If
pslh 2007-02-11
  • 打赏
  • 举报
回复
button.perform_click是什么?


或者这样:

Sub aaaaaaaaaaa()
....
其它代码

Me.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.aaaaaaaaaaa()
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.aaaaaaaaaaa()
End Sub
xiafan 2007-02-11
  • 打赏
  • 举报
回复
太好,现在,窗体的事可解决了,但 button.perform_click 这个,在我那里还有些问题。
好像只能执行一次——我那 BUTTON_CLICK事件里有个 TRY,在Catch ex As Exception里,我设置了提示信息以及对一个数值清零。用Me.Button1_Click(Button1, e)这种方式,可以做到。
但 button.perform_click 这种方式好像不行。不知道是怎么回事。
pslh 2007-02-11
  • 打赏
  • 举报
回复
建一窗体,如form1
在form1中添加一按钮,如:button1,用于关闭窗体,
在form1中再添加一timer,如timer1,用于自动关闭窗体。

添加类似下面的代码:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Button1.PerformClick()
End Sub


使用时:
Dim frm As New Form1
frm.ShowDialog()
xiafan 2007-02-11
  • 打赏
  • 举报
回复
晕了晕了
我跟踪时发现,无论我将是否最小化到托盘,它都不执行点击 BUTTON1 啊。
大哥,是不是我少写了什么参数?
xiafan 2007-02-11
  • 打赏
  • 举报
回复
晕了,不行啊
当我将窗口最小化到托盘时,你提供的方法(button.perform_click)就不工作啊

xiafan 2007-02-11
  • 打赏
  • 举报
回复
谢谢,第一问题按你说的已经解决了。
第二个问题,你说用窗体,能举个例子吗?因为我只要弹出个提示信息

拜托,请帮帮我。谢谢啊!!
liubaohuazy 2007-02-11
  • 打赏
  • 举报
回复
第一个问题用button.perform_click
第二个问题你可以不用提示框,用窗体,然后让窗体自动卸载

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧