1

私は持っている:

private void button1_MouseEnter(object sender, EventArgs e)
{
    for (int i = 0; i > 2; i++) 
    {     
        button1.Content = Convert.ToString(i);
        System.Threading.Thread.Sleep(1000);     
    }

    tekst.Text = "Mouse Enter";
}

on に入るとButtonのみMouse Enterが表示されますが、 ContentonButtonは変更されません。なんで?私は何が間違っている可能性がありますか?

4

2 に答える 2

2

こんにちは、forループは正しいですか?i>2ではなくi<2にする必要があります

 for (int i = 0; i < 2; i++)
        {
于 2013-03-07T19:04:11.953 に答える
0

条件が間違っているため、for ループが実行されない場合は、次のコードに変更します。

for (int i = 0; i < 2; i++)

また、BackgroundWorker( msdn ) を使用して GUI を動的に更新する必要があります。

private void button1_MouseEnter(object sender, MouseEventArgs e)
{
    BackgroundWorker worker = new BackgroundWorker();
    worker.DoWork += delegate
    {
        for (int i = 0; i < 2; i++)
        {
            this.Dispatcher.Invoke((Action)(() => { btn.Content = Convert.ToString(i); }));
            System.Threading.Thread.Sleep(1000);
        }                
    };
    worker.RunWorkerCompleted += delegate { tekst.Text = "Mouse Enter"; };
    worker.RunWorkerAsync();
}
于 2013-03-07T19:12:47.020 に答える