ListBox和Label不会逐渐显示循环中的数字

时间:2015-06-23 00:07:48

标签: c# .net

我试图在每个卷上显示2个骰子的数量。 当我运行程序时 lblDice1 lblDice2 只会显示最后一次滚动的编号,而listBox lstResults 只会在for循环结束后显示。如何逐步显示每个卷的结果。 这是我的代码

private void btnRoll_Click(object sender, EventArgs e)
{
        for (int i = 1; i < 101; i++)
        {
            Dice1 = rnd.Next(1, 7);
            Dice2 = rnd.Next(1, 7);
            lblDice1.Text = Convert.ToString(Dice1);
            lblDice2.Text = Convert.ToString(Dice2);
            strOut = Convert.ToString(Dice1);
            strOut2 = Convert.ToString(Dice2);
            lblRollNum.Text = Convert.ToString(i);
            if (Dice1 == Dice2)
                lstResults.Items.Add(i + "\t" + strOut + "\t" + strOut2 + "\t" + "Same Dice Value");
            else
                lstResults.Items.Add(i + "\t" + strOut + "\t" + strOut2);
            System.Threading.Thread.Sleep(1000);
        }
}

1 个答案:

答案 0 :(得分:0)

您使用的是什么类型的应用,WinForm或WPF?

如果您是WPF,那么您的循环将占用UI线程,因此在循环结束之前UI不会呈现。

您可以使用MVVM http://galasoft.ch/之类的东西将UI绑定到模型中不断变化的数据。