簡體   English   中英

c# 在 label 中顯示特定時間的文本

[英]c# show a text in a label for a particular time

有人知道如何在 label 或文本框中顯示特定時間的文本嗎? 假設如果我單擊一個按鈕,它會顯示在 label 的文本框中鍵入的文本 15 秒,然后它應該消失。

定時器 Class

代碼示例

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM