С# показать текст на ярлыке в течение определенного времени

Кто-нибудь знает, как показывать текст для определенного времени на ярлыке или в текстовом поле? Предположим, что если я нажал кнопку, он отобразит текст, введенный в текстовое поле на ярлыке, в течение 15 секунд, а затем он должен исчезнуть.

7 ответов

Используйте Timer, доступный в System.Timers

во время выполнения

Timer class представляет собой элемент управления 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();
}

Вот демонстрация: С# Timer Tutorial


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

Referance


Предполагая веб-страницу:

Вы можете сделать это через javascript, вы не хотите делать это на С#, как на стороне сервера.

Предполагая приложение Windows:

Вы можете использовать timer для удаления метки через несколько секунд.

Попробуйте указать, в каком типе приложения вы работаете в вопросе, так как это облегчает предоставление краткого ответа.


Вы можете использовать таймер. Вы не говорите, что это 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>
 
 </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">
 </textbox></textbox></stackpanel>
 </grid>
</window>


вы можете использовать класс таймера.

Показывать текст и прошедшее событие таймера скрывать текст. Проверьте ссылку


Используйте компонент Timer, который позволяет указать повторяющийся интервал, в котором событие Elapsed возникает в вашем приложении. Затем вы можете обработать это событие, чтобы обеспечить регулярную обработку.

Свойство Timer.Interval используется для установки интервала, в который нужно поднять истекшее событие.

Если Enabled установлено значение true и AutoReset установлено значение false, Timer вызывает событие Elapsed только один раз, первый раз, когда интервал истекает.

Компонент Timer создает событие Elapsed, основанное на значении свойства Interval. Вы можете обработать это событие, чтобы выполнить необходимую обработку.

Используйте Timer.Start Method, чтобы начать создание события Elapsed, установив Enabled в true.

Используйте Timer.Stop Method, чтобы остановить создание события Elapsed, установив Enabled в false.

Обратитесь к следующему образцу.

licensed under cc by-sa 3.0 with attribution.