0

デザイナーで可視性をとして設定する要素がありLabelます。PictureBoxfalse

今私はこれを試してみます:

   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

これが発生する理由は、メインスレッドが応答しなくなり、変更を順番に実行できないようになるためです。私は1年前のプロジェクトで非常によく似た問題を抱えていました。MSが推奨する解決策は、バックグラウンドワーカーを使用してファイルを開き、プライマリスレッドが応答しなくなることのないように操作することです。Microsoftには、バックグラウンドワーカーの使用方法のかなり適切な例があります: http: //msdn.microsoft.com/en-us/library/cc221403 (v = vs.95).aspx

于 2012-11-25T13:49:05.173 に答える