私はC#を使用してプログラムを作成していますが、ほぼ終了しています。プログラムの名前などを示す5秒単位でロードするウェルカムフォームを含めると面白いでしょう。 ..ようこそc#
...このMicrosoft Wordのようなが、私はこれを行うするかどうかはわかりません。私はいくつかのアドバイスをして欲しいです....
私はC#を使用してプログラムを作成していますが、ほぼ終了しています。プログラムの名前などを示す5秒単位でロードするウェルカムフォームを含めると面白いでしょう。 ..ようこそc#
...このMicrosoft Wordのようなが、私はこれを行うするかどうかはわかりません。私はいくつかのアドバイスをして欲しいです....
あなたはWPFを使用している場合はSystem.Windows.SplashScreenオブジェクトを使用することができます。
WinFormsでは少し難しくなっていますが、example located hereを使用して始めましょう。
スプラッシュ画面は、何か起きているような気分になるようにアプリケーションが読み込まれるまでに時間がかかる場合を想定しています。アプリケーションの読み込みを5秒遅らせる場合は、実際にはとなり、ユーザーのエクスペリエンスは低下します。 5秒は非常に長い時間です...
WinFormsにはありません。 C#で。 VB.NETには[My.Application.SplashScreen](http://msdn.microsoft.com/en-us/library/1t310742(v = VS.90).aspx)プロパティがあります。 – GSerg
はい、VB.NETには、このような便利なクラスがApplicationServices名前空間に多数あります。 – LBushkin
ありがとうございました!!!私はあなたがユーザーのための経験を劣化させることについて正しいと思いますが、私はとにかくそれを試してみたいだけです。あなたの例は完璧です...ありがとう – brisonela
まあ、フォームを作成し、そのボーダーをnoneに設定し、イメージを置いて、メインフォームを開く5秒後に起動するwinformsタイマーをセットします。行く。
しかし、より複雑なスプラッシュ画面(リサイズ)がなどをクリッピング、GDI +が必要ですが、これは私が推測行います...
私はこの使用して「System.Theading」を実行して、これは私のために非常に適しています。次のコードでは、別のスレッドで "スプラッシュ画面"を起動します。アプリケーション(MainForm()の下の私の例では)がロードまたは初期化されています。まず、あなたの "main()"メソッド(program.csファイルの名前を変更していない限り)にスプラッシュ画面を表示する必要があります。これは、起動時にユーザーを表示したいWinFormまたはWPFフォームになります。あなたは、次のようなものが必要あなたのスプラッシュ画面のコードで
[STAThread]
static void Main()
{
// Splash screen, which is terminated in MainForm.
SplashForm.ShowSplash();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Run UserCost.
Application.Run(new MainForm());
}
を::
public partial class SplashForm : Form
{
// Thredding.
private static Thread _splashThread;
private static SplashForm _splashForm;
public SplashForm()
{
InitializeComponent();
}
// Show the Splash Screen (Loading...)
public static void ShowSplash()
{
if (_splashThread == null)
{
// show the form in a new thread
_splashThread = new Thread(new ThreadStart(DoShowSplash));
_splashThread.IsBackground = true;
_splashThread.Start();
}
}
// Called by the thread
private static void DoShowSplash()
{
if (_splashForm == null)
_splashForm = new SplashForm();
// create a new message pump on this thread (started from ShowSplash)
Application.Run(_splashForm);
}
// Close the splash (Loading...) screen
public static void CloseSplash()
{
// Need to call on the thread that launched this splash
if (_splashForm.InvokeRequired)
_splashForm.Invoke(new MethodInvoker(CloseSplash));
else
Application.ExitThread();
}
}
これは、あなたがして進行させる別のバックグラウンドスレッドでスプラッシュフォームを起動し、次のようにこれは)(メインから打ち上げですメインアプリケーションのレンダリングを同時に行います。終えると、アプリケーションで使用すると、デフォルトコンストラクタ内で、次を配置初期化されたとき、スプラッシュスクリーンを閉鎖するには(あなたがしたい場合、あなたは、コンストラクタをオーバーロードできます):
これはあなたのすべて自明であるとあなた自身でコードの正確な作業を確立できるはずです。それがあなたを助けることを願っています
注:この例ではWinFormsを使用しています。このコードでは、特にマルチコアマシンを使用している場合は、アプリケーションの初期化シーケンスをあまり遅くしてはいけません。しかし、あなたのアプリが素早くレンダリングされているならば、それはおそらく必要ないでしょう。 – MoonKnight
アプリケーションの読み込みに時間がかかる場合を除き、これを行わないでください。 Officeはロードに時間がかかるため、Microsoftがこれを使用します。 –
あなたに興味があるかもしれませんが、ユーザーには面倒です。 – JohnFx