アプリケーションの起動時にスプラッシュ シーンのラベルを更新して、何が起こっているかをユーザーに知らせる最善の方法は何ですか? 問題は、「this.SplashScreen」にアクセスできない静的なメイン メソッド内で更新を行う必要がある一方で、オーバーライド メソッドでスプラッシュ スクリーンが作成されることです。
class SingleInstanceApplication : WindowsFormsApplicationBase
{
[STAThread]
static void Main(string[] args)
{
SetSplashInfo("Data configuration", "Applying DataDirectory");
//Can't be done, this method is static**
//Do some stuff, code removed for reading purposes
}
protected override void OnCreateSplashScreen()
{
this.SplashScreen = new TestSplash();
this.SplashScreen.TopMost = true;
base.OnCreateSplashScreen();
}
private void SetSplashInfo(string txt1, string txt2)
{
if ( this.SplashScreen == null)
return;
TestSplash splashFrm = (TestSplash)this.SplashScreen;
splashFrm.label1.Text = txt1;
splashFrm.label2.Text = txt2;
}
}