0

我有一个LabelPictureBox元素,在设计师中我将可见性设置为false.

现在我试试这个:

   private void openExcelButton_Click(object sender, EventArgs e)
    {

        openExcelDialog.Filter = "Excel files|*.xls;*.xlsx;*.csv";
        DialogResult result = openExcelDialog.ShowDialog();
        if (result == DialogResult.OK) // Test result.
        {
            LoadingGIF.Visible = true;
            LoadingLabel.Text = "Loading...";
            LoadingLabel.Visible = true;
            string file = openExcelDialog.FileName;

            //more code
            LoadingGIF.Visible = false;
            LoadingLabel.Text = "Uploading Finished!";



        }
    }

现在,当按下按钮并选择一个文件时,直到我完成该//more code部分中的代码然后标签更改之前,什么都没有发生。

为什么会这样?

4

1 回答 1

1

发生这种情况的原因是因为您的主线程变得无响应并且不允许更改按顺序发生。一年前我在一个项目上遇到了一个非常相似的问题。MS 建议的解决方案是使用后台工作程序打开文件并对其进行操作,这样主线程就不会变得无响应。微软在这里有一个如何使用后台工作者的相当不错的例子:http: //msdn.microsoft.com/en-us/library/cc221403 (v=vs.95).aspx

于 2012-11-25T13:49:05.173 回答