Сделайте так, чтобы метка появлялась на 3 секунды, а затем снова исчезала - PullRequest
0 голосов
/ 03 октября 2009

Как мне получить ярлык с надписью: «Обновления реестра правильно», а затем он исчезнет примерно через 2 секунды?

Я предполагаю, изменив свойство .Visible, но не могу понять.

Ответы [ 5 ]

4 голосов
/ 04 октября 2009

Используйте класс Timer, но подбросьте его так, чтобы он мог вызывать метод при возникновении события Tick. Это делается путем создания нового класса, который наследуется от класса Timer. Ниже приведен код формы, который имеет элемент управления с одной кнопкой (btnCallMetLater).

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DemoWindowApp
{
    public partial class frmDemo : Form
    {
        public frmDemo()
        {
            InitializeComponent();
        }

        private void btnCallMeLater_Click(object sender, EventArgs e)
        {
            MethodTimer hide = new MethodTimer(hideButton);
            MethodTimer show = new MethodTimer(showButton);

            hide.Interval = 1000;
            show.Interval = 5000;

            hide.Tick += new EventHandler(t_Tick);
            show.Tick += new EventHandler(t_Tick);

            hide.Start(); show.Start();
        }

        private void hideButton()
        {
            this.btnCallMeLater.Visible = false;
        }

        private void showButton()
        {
            this.btnCallMeLater.Visible = true;
        }

        private void t_Tick(object sender, EventArgs e)
        {
            MethodTimer t = (MethodTimer)sender;

            t.Stop();
            t.Method.Invoke();
        }
    }

    internal class MethodTimer:Timer
    {
        public readonly MethodInvoker Method;
        public MethodTimer(MethodInvoker method)
        {
            Method = method;
        }
    }
}
3 голосов
/ 03 октября 2009

Когда вы устанавливаете свою метку, вы можете установить таймер, который истекает через 2 или 3 секунды, который вызывает функцию, чтобы скрыть вашу метку.

1 голос
/ 03 октября 2009

Вам необходимо настроить объект Timer и включить таймер, чтобы скрыть свою метку, установив Visible в false.

Класс таймера: http://msdn.microsoft.com/en-us/library/system.timers.timer(VS.71).aspx

1 голос
/ 03 октября 2009

Создайте System.Forms.Timer с продолжительностью 2 секунды. Подключите обработчик события к событию Tick и в обработчике установите для свойства visible метки значение false (и отключите таймер)

0 голосов
/ 04 октября 2009

Ну, если вы не возражаете против того, что пользователь не может ничего сделать в течение 2 секунд, вы можете просто вызвать Thread.Sleep (2000). Если они просто ждут обновления, это не большая разница. Лот меньше кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...