Как обновить значение текстового поля в цикле вычислений?
Я хочу показать изменение значения в текстовом поле для вычисления в цикле do..while. Я обнаружил, что текстовое поле показывает только конечное значение вычисления. Пожалуйста помочь. Спасибо!
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Windows.Forms; namespace Testprogram1 { // Declare a delegate public delegate void ValueChangedEventHander(object sender, EventArgs ex); public partial class FrmMainW : Form { public FrmMainW() { InitializeComponent(); } private void btnAdd_Click(object sender, EventArgs e) { Add(); } private void btnSub_Click(object sender, EventArgs e) { Sub(); } private void btnAutoAdd_Click(object sender, EventArgs e) { do { Add(); } while (num < 20000); } private void btnAutoSub_Click(object sender, EventArgs e) { do { Sub(); } while (num > -20000); } private void Add() { num = num + 1; strnum = string.Format("{0:0.00}", num); TxtResult.Text = strnum; } private void Sub() { num = num - 1; strnum = string.Format("{0:0.00}", num); TxtResult.Text = strnum; } } }
NotPolitcallyCorrect
Это потому, что вы забиваете поток пользовательского интерфейса. Он не может делать обновления, пока вы обрабатываете событие. Вы можете использовать фоновый поток для выполнения своих вычислений.