有人知道如何在标签或文本框中显示特定时间的文字吗?假设我单击一个按钮,它会在标签的文本框中显示输入15秒的文本,然后它就会消失。
答案 0 :(得分:2)
using System;
//Включаем необходимое пространство имен.
using System.Timers;
public class MyTimer
{
static int n=0; //Счетчик.
public static void Main()
{
System.Timers.Timer tmr = new System.Timers.Timer();
tmr.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
tmr.Interval=1000; //Устанавливаем интервал в 1 сек.
tmr.Enabled=true; //Вкючаем таймер.
while(n!=4); //Таймер тикает 4 раза.
}
//Метод для отработки события Elapsed таймера.
public static void OnTimedEvent(object source, ElapsedEventArgs e)
{
//Делаем некоторые действия.
Console.WriteLine("Hello World!");
//Увеличиваем счетчик.
n++;
}
}
答案 1 :(得分:1)
利用Timer
System.Timers
<强>运行时强>
Timer类表示Timer控件,用于在运行时创建Timer。以下代码段在运行时创建一个Timer,设置其属性和事件处理程序。
Timer t = new Timer();
t.Interval = 2000;
timer1.Enabled = true;
timer1.Tick += new System.EventHandler(OnTimerEvent);
事件处理程序代码如下所示。
private void OnTimerEvent(object sender, EventArgs e)
{
lbl.Text = DateTime.Now.ToLongTimeString() + "," + DateTime.Now.ToLongDateString();
}
以下是演示:C# Timer Tutorial
答案 2 :(得分:1)
假设有一个网页:
您可以通过javascript
执行此操作,您不希望在C#中执行此操作,因为它是处理过的服务器端。
假设有一个Windows应用程序:
您可以在几秒钟后使用timer
删除标签。
尝试指定您在问题中使用的应用程序类型,因为它可以更轻松地给出简明的答案。
答案 3 :(得分:1)
您可以使用计时器。你没有说这是WinForms还是WPF,所以我假设是WPF,但你也可以使用System.Windows.Timers.Timer
。
using System.Windows.Threading;
class MyWindow : Window
{
public MyWindow()
{
_someLabel.Text = "Whatever";
var timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds( 15 );
timer.Tick += delegate { _someLabel.Text = String.Empty; };
}
}
答案 4 :(得分:1)
我会像其他人一样疯狂猜测......如果这个解决方案目前没用,那么对于其他搜索此主题的人来说,它可能会有用。
如果你使用的是WPF,那么这一点很简单,请检查这个完整的样本,一旦失去焦点,它会在5秒内淡出文本框。第二个文本框只是为了让你有兴趣将焦点转移到:)
<Window x:Class="WpfApplication12.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="150">
<Window.Resources>
<Style x:Key="Fade" TargetType="TextBox">
<Style.Triggers>
<EventTrigger RoutedEvent="TextBox.LostFocus" >
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation x:Name="z"
BeginTime="0:0:0"
Duration="0:0:5"
From="1.0"
To="0"
Storyboard.TargetProperty="Opacity"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<StackPanel Orientation="Vertical">
<TextBox x:Name="MyTextBox" Width="100" Height="30" Style="{StaticResource Fade}" />
<TextBox Width="100" Height="30" Margin="0,5"/>
</StackPanel>
</Grid>
</Window>
答案 5 :(得分:0)
使用Timer组件,该组件允许您指定应用程序中引发Elapsed
事件的重复间隔。然后,您可以处理此事件以提供定期处理。
Timer.Interval Property用于设置提升Elapsed事件的时间间隔。
如果Enabled设置为 true 且AutoReset设置为 false ,则Timer
会引发Elapsed
只有一次,第一次间隔过去。
Timer
组件根据Interval属性的值引发Elapsed事件。您可以处理此事件以执行所需的处理。
通过将Elapsed
设置为 true ,使用Timer.Start Method开始提升Enabled
事件。
通过将Elapsed
设置为 false ,使用Timer.Stop Method停止举起Enabled
事件。
请参阅以下sample。
答案 6 :(得分:0)
你可以使用计时器类。
显示文本和计时器的已用事件隐藏文本。查看link