問題は、読み込み中のアニメーションを表示するある種のスプラッシュ スクリーンがあることです。私はそれを表示および非表示にする特別なマネージャーを持っています。
class Manager
{
private Form CurForm;
Thread curt;
private Manager()
{
curt= new Thread(start);
curt.ApartmentState = ApartmentState.STA;
curt.IsBackground = true;
curt.Start();
}
void start()
{
CurForm = new Animation();
Application.Run(CurForm);
}
public static readonly Manager Active = new Manager();
public static void Show()
{
if (Active.CurForm != null)
{
Active.CurForm.Invoke(new Action(() => { Active.CurForm.Show(); }));
}
}
public static void Hide()
{
if (Active.CurForm != null)
{
Active.CurForm.Invoke(new Action(() => { Active.CurForm.Hide(); }));
}
}
}
いくつかのモーダル フォーム (ShowDialog) を開きます。このモーダル フォームはタスク バーに表示されません。
簡単に最小化でき、タスクバーのメインフォームをクリックすると、そのモーダルフォームが一番上に表示されます。
しかし、必要なすべてのデータをロードしているときに、このロード アニメーションを表示すると。
そのようなもの(もちろん、動作をテストするための単なるサンプルであり、実際のアプリでは、すべてのデータとフォームを多くのコントロールでロードするのに多くの時間がかかりました)
public modal()
{
Manager.Show();
InitializeComponent();
Thread.Sleep(5000);
Manager.Hide();
}
そして、上記のように最小化して復元しようとすると、モーダルフォームが復元されず、メインの使用できないフォームが表示されるだけです。それ以上に、場合によっては機能しますが、機能しない場合もあります。
なぜそれが起こるのか、またはそれを修正する方法を誰かが知っていますか?