设定时间后关闭表格

时间:2013-08-04 19:17:52

标签: vb.net winforms timer

下面的代码允许我在打开和关闭时淡入淡出,这就是我想要的。但是,我希望我的表格在淡入淡出开始前保持打开10秒钟。我正在努力完成这一部分。

这是我到目前为止所做的:

Public Class frmDefinitions

    Private Sub Button1_Click(sender As Object, e As EventArgs) _
                    Handles Button1.Click
        tmr_out.Enabled = True
    End Sub

    Private Sub frmDefinitions_Load(sender As Object, e As EventArgs) _
                    Handles MyBase.Load
        Me.Opacity = 100
        tmr_in.Enabled = True
    End Sub

    Private Sub tmr_in_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
                    Handles tmr_in.Tick
        Me.Opacity += 0.05
        If Me.Opacity = 1 Then
            tmr_in.Enabled = False
        End If
    End Sub

    Private Sub tmr_out_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
                    Handles tmr_out.Tick
        Me.Opacity -= 0.05
        If Me.Opacity = 0 Then
            tmr_out.Enabled = False
            Me.Close()
        End If
    End Sub

End Class

1 个答案:

答案 0 :(得分:2)

您需要设置第三个Timer来延迟tmr_out Timer的开始。一旦你的tmr_in被禁用,我就会触发延迟。然后你应该在开始淡出之前得到10秒的延迟。您也可以尝试使用Form的Shown事件来启动延迟,但您需要调整10秒以适应延迟的淡入淡出。

Public Class Form1
    Dim tmrDelay As New Timer()

    Public Sub New()
        InitializeComponent()
        tmrDelay.Interval = 10000
        AddHandler tmrDelay.Tick, AddressOf tmrDelay_Tick
    End Sub

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Me.Opacity = 0
        tmr_in.Enabled = True
    End Sub

    Private Sub tmrDelay_Tick(sender As System.Object, e As System.EventArgs)
        tmrDelay.Stop()
        tmr_out.Start()
    End Sub

    Private Sub tmr_in_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmr_in.Tick
        Me.Opacity += 0.05
        If Me.Opacity = 1 Then
            tmr_in.Enabled = False
            tmrDelay.Start()  'Start Your 10 second delay here.
        End If
    End Sub

    Private Sub tmr_out_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmr_out.Tick
        Me.Opacity -= 0.05
        If Me.Opacity = 0 Then
            tmr_out.Enabled = False
            Me.Close()
        End If
    End Sub


End Class