几秒钟后,在表单上清除文本框

时间:2014-08-07 18:47:23

标签: vba ms-access access-vba ms-access-2010

我想找到每次推送另一个控件(按钮)时文本框显示消息的最佳方法。每次按下按钮,消息都将更改,该消息应显示在我的文本框中。我想做的诀窍是在用户停止按下按钮后,在一段时间(3秒)之后文本框将消失..(也许可以删除消息)。什么是正确的事件?

基本上,对于名为' msgPrincipio'在下面的代码中,我希望该消息在文本框中显示3秒然后消失:

Private Sub Form_Timer()

Dim intTimerStart As Integer, intTimerUsed As Integer
Dim intCountdown As Integer

On Error GoTo Err_Handle
  If Me!msgPrincipio <> "" Then
    If intTimerStart > 0 Then
        intTimerUsed = CLng((Timer / 60) - intTimerStart)
    Else
        intTimerStart = CLng(Timer / 60)
    End If

     If intCountdown > 3 Then
        Me!msgPrincipio = ""
    End If

    intCountdown = intCountdown + 1

  End If
Err_Exit:       Exit Sub
Err_Handle:     Resume Next
End Sub

2 个答案:

答案 0 :(得分:1)

Dim intTimerStart as Integer, intTimerUsed as Integer
Dim intCountdown as Integer

Sub Form_Timer()

On Error GoTo Err_Handle
  If Me!MyBox <> "" Then
    If intTimerStart > 0 Then
        intTimerUsed = CLng((Timer / 60) - intTimerStart)
    Else
        intTimerStart = CLng(Timer / 60)
    End If

    If intCountdown > 3 Then
        Me!MyBox = ""
    End If

    intCountdown = intCountdown + 1

  End If
Err_Exit:       Exit Sub
Err_Handle:     Resume Next
End Sub

您还需要转到表单的设计视图,并将表单上的“Timer Interval”属性设置为适当的值。此代码假定1,000(1秒)。

你几乎从不想要使用Resume Next,但这里很好 - 目标是尽可能无缝地传递这段代码。 (你可以在开始时使用简单的On Error Resume Next完成 - 但我不喜欢在我的代码中看到它,而不是一点。我这样做,所以我很容易认出它是设计的,而不是粗心大意。)

Access'Form Timer?

的新功能
Private Sub Form_Timer()
    Debug.Print Time        ' Update time display.
End Sub

将此代码放在表单的VBA模块中。返回到表单设计视图并切换到表单视图。现在返回VBA并检查Immediate窗口。您应该看到表单计时器事件正在踢的证据。 请注意,表单的Timer属性(在表单属性,设计视图下找到)不能为空或零。它需要一个条目才能踢。

答案 1 :(得分:0)

使用 C#

using System.Windows.Forms;

public partial class Form1 : Form
{  private Timer x = new Timer();

public Form1()
{
      x.Interval = (6000);  //1 second = 1000
      x.Tick += new EventHandler(TimerTask); 
      x.Start();
}

private void TimerTask(object sender, EventArgs e)
{
      TextboxName.Text = String.Empty;
}

设置标签内容自动消失:https://gamespec.tech/how-to-clear-textbox-after-few-seconds-in-c-sharp/#3-set-label-content-and-make-it-disappear-automatically