В Windows Form ежесекундно выводить текстовое сообщение из файла

149
06 сентября 2021, 13:10

В Windows Form есть textbox. Надо что бы каждую секунду текст из файла размещался в textbox. Вот код:

public delegate void UI();
public partial class Form1 : Form
{
    // Объявляем событие
    public static event UI UserEvent;
    // Используем метод для запуска события
    public static void OnUserEvent()
    {
        UserEvent();
    }
    public Form1()
    {            
        InitializeComponent();
        // Добавляем обработчик события
        UserEvent += UserInfoHandler;
        while (true)
        {
        Thread.Sleep(1000);
            // Запустим событие
            OnUserEvent();
        }
    }
    public void UserInfoHandler()
    {
        textBox1.Text = File.ReadAllText("test.txt");
    }
}

Но естественно ничего не происходит. Предполагаю что код из Form1 после InitializeComponent надо перенести куда нибудь в другое место. Но вот куда не понятно. Подскажите решение.

Answer 1

Бросаем на форму Timer

настраиваем свойства

добавляем в ресурсы текстовой файл со словами, пишем код

public partial class Form1 : Form
{
    private readonly Random _random = new Random();
    public Form1()
    {
        InitializeComponent();
        StartPosition = FormStartPosition.CenterScreen;
        Text = "Пример";
        //подписываемся на собитие тика таймера
        _timer.Tick += Timer_Tick;
        _buttonStart.Click += ButtonStart_Click;
        _buttonStop.Click += ButtonStop_Click;
    }
    private void Timer_Tick(object sender, EventArgs e)
    {
        var words = Properties.Resources.words.Split(Environment.NewLine.ToCharArray());
        _labelOutput.Text = words[_random.Next(0, words.Length)];
    }
    private void ButtonStart_Click(object sender, EventArgs e)
    {
        _timer.Start();
    }
    private void ButtonStop_Click(object sender, EventArgs e)
    {
        _timer.Stop();
    }
}
READ ALSO
Нельзя в командную строку передать параметры

Нельзя в командную строку передать параметры

Тут заметил, случайно, если мы попытаемся в своем приложении запустить командную строку с любыми параметрамиТо откроется только окошко CMD

80
Преобразовать строку в дату. mySQL

Преобразовать строку в дату. mySQL

Получаю котировки валют в XMLДата котировки передается в таком формате:

143
Ускорение миграции/изменения таблиц в MySQL?

Ускорение миграции/изменения таблиц в MySQL?

поделитесь пожалуйста мыслями, опытом

156
Как получить данные из JSON по длине строки?

Как получить данные из JSON по длине строки?

Как сделать выборку из JSON? JSON представляет из себя следующее:

161