我有一个Label
和PictureBox
元素,在设计师中我将可见性设置为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
部分中的代码,然后标签发生变化。
为什么会这样?
答案 0 :(得分:1)
发生这种情况的原因是因为您的主线程变得无响应并且不允许按顺序发生更改。一年前我在一个项目上遇到了一个非常类似的问题。 MS建议的解决方案是使用后台工作程序打开文件并对其进行操作,以便主线程不会变得无响应。 Microsoft有一个相当不错的示例,说明如何在这里使用后台工作程序:http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx