プログラムの読み込み中に表示される読み込み画面(ちょうど写真など)を作成する方法を尋ね、プログラムの読み込みが終了したら消えます。C#WinForm - loading screen
私はプロセスバー(%)が表示されているのを見てきました。どのようにそれを持つことができ、どのようにそれに表示する%を計算するのですか?
Form_Load()イベントはありますが、Form_Loaded()イベントは表示されません。または%プロパティ/属性として%が表示されます。
プログラムの読み込み中に表示される読み込み画面(ちょうど写真など)を作成する方法を尋ね、プログラムの読み込みが終了したら消えます。C#WinForm - loading screen
私はプロセスバー(%)が表示されているのを見てきました。どのようにそれを持つことができ、どのようにそれに表示する%を計算するのですか?
Form_Load()イベントはありますが、Form_Loaded()イベントは表示されません。または%プロパティ/属性として%が表示されます。
すべての場合、スプラッシュ画面として1つのフォームを作成し、メインページに表示する前に表示し、リンク先ページを読み込んだ後にスプラッシュを閉じる必要があります。
using System.Threading;
using System.Windows.Forms;
namespace MyTools
{
public class SplashForm : Form
{
//Delegate for cross thread call to close
private delegate void CloseDelegate();
//The type of form to be displayed as the splash screen.
private static SplashForm splashForm;
static public void ShowSplashScreen()
{
// Make sure it is only launched once.
if (splashForm != null)
return;
Thread thread = new Thread(new ThreadStart(SplashForm.ShowForm));
thread.IsBackground = true;
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
static private void ShowForm()
{
splashForm = new SplashForm();
Application.Run(splashForm);
}
static public void CloseForm()
{
splashForm.Invoke(new CloseDelegate(SplashForm.CloseFormInternal));
}
static private void CloseFormInternal()
{
splashForm.Close();
splashForm = null;
}
}
}
とメインプログラムの機能は次のようになります。あなたはあなたのアプリケーションで何度もSplashForm以上を表示するつもりなら
[STAThread]
static void Main(string[] args)
{
SplashForm.ShowSplashScreen();
MainForm mainForm = new MainForm(); //this takes ages
SplashForm.CloseForm();
Application.Run(mainForm);
}
、そうでない場合は、あなたをゼロにするためにsplashForm変数を設定してくださいエラーが発生します。
static private void CloseFormInternal()
{
splashForm.Close();
splashForm = null;
}
コードの回答を編集します。ありがとう。 – Pedro77
フォームの読み込みは何ですか?任意のデータベースクエリ操作、CPU集約操作、「進捗バー」を表示するために本当に必要なもの、またはスプラッシュ画面を必要とするものはありますか? –
私はスプラッシュ画面が欲しいですが、私はまた、進行状況バーについて知りたいです。 – CaTx