c#在特定时间显示标签中的文本

时间:2011-06-08 06:12:48

标签: c# winforms timer

有人知道如何在标签或文本框中显示特定时间的文字吗?假设我单击一个按钮,它会在标签的文本框中显示输入15秒的文本,然后它就会消失。

7 个答案:

答案 0 :(得分:2)

Timer 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++;
    }
}

全球化志愿服务青年

答案 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