我想找到每次推送另一个控件(按钮)时文本框显示消息的最佳方法。每次按下按钮,消息都将更改,该消息应显示在我的文本框中。我想做的诀窍是在用户停止按下按钮后,在一段时间(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
答案 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
完成 - 但我不喜欢在我的代码中看到它,而不是一点。我这样做,所以我很容易认出它是设计的,而不是粗心大意。)
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;
}