@Igor_1230
Иван

Как организовать Update в window forms?

В юнити3д есть компоненты монобихавиур, в них есть update. Каждый кадр все объекты проходятся и все их updatе ы выполняются. А как работают vs windows forms ? Где update ? В событиях видел Load, допустим это аналог Start.
Сделал вот так (не работает(заголовок формы не меняется):
private void Form1_Load(object sender, EventArgs e)
        {
            System.Random rnd = new Random();

            Task task = new Task(()=>
            {
                while(true)
                {
                    this.Text = rnd.Next(0, 1000).ToString();

                }
            });
            task.Start();

        }
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
Casper-SC
@Casper-SC
Программист (.NET)
using System;
using System.Windows.Forms;

namespace WinFormsApp
{
    public partial class MainForm : Form
    {
        private readonly Random _random;
        private readonly Timer _timer;

        public MainForm()
        {
            InitializeComponent();

            _random = new Random();
            _timer = new Timer();
            _timer.Interval = 500;
            _timer.Tick += OnTimerTick;
        }

        private void OnFormLoad(object sender, EventArgs e)
        {
            _timer.Start();
        }

        private void OnTimerTick(object sender, EventArgs e)
        {
            label.Text = _random.Next(0, 1000).ToString();
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
В windows forms аналогом unity update является метод OnPaint (переопределите его):

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);
    Pen pen = new System.Drawing.Pen(System.Drawing.Color.Red, 2);
    e.Graphics.DrawLine(pen, 0, 0, 150, 150);
    pen.Dispose();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы