C#のWinフォームフォームのロード

コードの形をロードする最初の

1   公共 部分 クラスFrmLoading:フォーム
 2      {
 3          公共のBackgroundWorker updateDBWorker = 新規のBackgroundWorker()。
4  
5          パブリックアクションBackgroundWorkAction
 6          {
 7              GET 8              セット9          }
 10  
11          公衆 KeyValuePair < 整数文字列 > CurrentMsg
 12          {
 13は、             設定
14              {
 15                  .updateDBWorker.ReportProgress(value.Key、value.Value)。
16              }
 17          }
 18  
19          公衆FrmLoading()
 20          {
 21              のInitializeComponent();
22              この .updateDBWorker.WorkerReportsProgress = ;
23              この .updateDBWorker.WorkerSupportsCancellation = ;
24              この .updateDBWorker.DoWork + = 新しい DoWorkEventHandler(この.backgroundWorker1_DoWork)。
25              この .updateDBWorker.ProgressChanged + = 新しいですProgressChangedEventHandler(この.backgroundWorker1_ProgressChanged)。
26              この .updateDBWorker.RunWorkerCompleted + = 新しい RunWorkerCompletedEventHandler(この.backgroundWorker1_RunWorkerCompleted)。
27              lblVer.Text = Properties.Resources.SystemVer。
28          }
 29  
30  
31          公共 ボイド ShowLog(ストリング strLog、INT intValue)
 32          {
 33              であればこの.lblLog.InvokeRequired)
 34              {
 35                  .lblLog.BeginInvoke(新しい MethodInvoker(デリゲート(){ShowLog(strLog、intValue);}))。
36              }
 37              他の
38              {
 39                  lblLog.Text = strLog。
40                  この .progressBar1.Value = intValue。
41              }
 42          }
 43  
44          プライベート ボイド FrmLoading_Load(オブジェクト送信者、のEventArgs電子)
 45          {
 46              この.updateDBWorker.RunWorkerAsync()。
47          }
 48  
49         プライベート ボイド backgroundWorker1_DoWork(オブジェクト送信者、DoWorkEventArgs E)
 50          {
 51              であればこの .BackgroundWorkAction!= NULL 52              {
 53                  この.BackgroundWorkAction()。
54              }
 55              のThread.sleep(100 )。
56              であればベース.InvokeRequired)
 57              {
 58                  塩基 .BeginInvoke(新しい MethodInvoker(デリゲート
59                  {
60                      塩基.Close()。
61                  }))。
62              }
 63              他の
64              {
 65                  塩基.Close()。
66              }
 67          }
 68  
69          プライベート ボイド backgroundWorker1_ProgressChanged(オブジェクト送信者、ProgressChangedEventArgs E)
 70          {
 71              ShowLog((e.UserState == NULL)?"" :e.UserState.ToString()、e.ProgressPercentage)。
72          }
 73  
74          民間 のボイドbackgroundWorker1_RunWorkerCompleted(オブジェクト送信者、RunWorkerCompletedEventArgs E)
 75          {
 76          }
 77      }
コードの表示

画面上のプログレスバー、ラベル、ない何か

 

場所、プログラムファイルの内部を呼び出す見て

1 FrmLoading frmLoading = 新しい新しいFrmLoading();
 2                          frmLoading.BackgroundWorkAction = デリゲート
。3                          {
 4                              トライ
5                              {
 6                                  // 接続文字列を設定する                                
。7                                  frmLoading.CurrentMsg = 新しい新しい KeyValuePair < 整数文字列 >(1" コンフィギュレーションデータを初期化.. 。" );
 8  
。9                                  frmLoading.CurrentMsg = 新しい新KeyValuePair < int型文字列 >(。5" ログの設定を初期化しています... " );
 10                                  System.Threading.Thread.Sleep(200です;)
 11。                                 
12がある                                  = frmLoading.CurrentMsg 新しい新しい KeyValuePair < int型文字列 >(10" されますローカルデータをアップグレード... " );
 13は                               
14                                  frmLoading.CurrentMsg = 新しい新しい KeyValuePair < int型文字列 >(50" ローカルパラメータを初期化されます... " );
 15                                 
16                                  frmLoading.CurrentMsg = 新しい新しい KeyValuePair < int型文字列 >(85" ...ホットキーの初期化" );
 17                                 
18はある                                  frmLoading.CurrentMsg = 新しい新しい KeyValuePair < int型文字列 >(90" ハードウェアデバイスを初期化する... " );
 19                                
20である                                  frmLoading.CurrentMsg = 新しい新しい KeyValuePair < INT文字列 >(100" 初始化完成... " );
21                                  
22                              }
 23                              キャッチ(例外EX)
 24                              {                              
 25                                  Application.Exit()。
26                                  Process.GetCurrentProcess()(キル)。
27                              }
 28                          }。
29                          frmLoading.ShowDialog()。
30                        
31                          Application.Run(新しい Form1の())。
コードの表示

まあ、それはそう、技術的な内容ではなく、マップされていない、あなたはそれを持つことができます

おすすめ

転載: www.cnblogs.com/bfyx/p/11316760.html