[英]c# show a text in a label for a particular time
有人知道如何在 label 或文本框中顯示特定時間的文本嗎? 假設如果我單擊一個按鈕,它會顯示在 label 的文本框中鍵入的文本 15 秒,然后它應該消失。
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++;
}
}
利用Timer
,在System.Timers
中可用
運行
Timer class 代表一個 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# 定時器教程
假設一個 web 頁面:
您可以通過javascript
執行此操作,您不想在 C# 中執行此操作,因為這是在服務器端處理的。
假設 windows 應用程序:
您可以使用timer
在幾秒鍾后移除 label。
嘗試在問題中指定您正在處理的應用程序類型,因為這樣更容易給出簡潔的答案。
您可以使用計時器。 你不會說這是 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; };
}
}
我會像其他人一樣進行瘋狂的猜測......如果這個解決方案此時沒有用,那么它可能對其他搜索這個主題的人有用。
如果您使用的是 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>
使用Timer組件,它允許您指定在應用程序中引發Elapsed
事件的重復間隔。 然后您可以處理此事件以提供常規處理。
Timer.Interval 屬性用於設置引發 Elapsed 事件的時間間隔。
如果Enabled設置為true並且AutoReset設置為false ,則Timer
僅引發Elapsed
事件一次,即第一次經過的時間間隔。
Timer
組件根據 Interval 屬性的值引發Elapsed事件。 您可以處理此事件以執行您需要的處理。
使用Timer.Start 方法通過將Enabled
設置為true來開始引發Elapsed
事件。
使用Timer.Stop 方法通過將Enabled
設置為false來停止引發Elapsed
事件。
請參閱以下示例。
您可以使用定時器 class。
顯示文本和計時器的經過事件隱藏文本。 檢查鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.