Change button content in WPF

你。 提交于 2019-12-02 08:28:09

问题


I have:

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";
}

When I enter on Button I see only Mouse Enter, but Content on Button don't change. Why? What I can do wrong?


回答1:


Your for loop never execute because you have wrong condition, change it to following code:

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

Also you should use BackgroundWorker (msdn) to update your GUI dynamicly.

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();
}



回答2:


Hi is your for loop correct? It should be i<2 instead of i>2

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


来源:https://stackoverflow.com/questions/15279349/change-button-content-in-wpf

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!