0

私は .NET デスクトップ ベースの開発は初めてなので、些細なことが抜けている場合はご容赦ください。

ユーザーがボタンをクリックすると、ユーザーがいくつかのファイルを選択できるダイアログフォームが開き、ファイルを選択した後、ユーザーがこのフォームの [プロセス] ボタンをクリックして長いプロセスを開始するメインフォームがあります。ボタンをクリックすると、このフォームが非表示になり、バックグラウンドワーカーが開始され、別のダイアログが表示されて、アニメーション化された進行状況バーの画像が表示されます。私が直面している問題は、ユーザーが [プロセス] ボタンをクリックすると、フォームが非表示になり、プログレス バー ダイアログが表示されるが、メイン フォームが最小化されることです。その中で私を助けることができる体はありますか?メインフォームを最小化したくありません。

ファイルが選択されているダイアログの私のコードは次のとおりです。

frmProgressbar progressDialog = null;

private void btnProcess_Click(object sender, EventArgs e)
{
    this.Hide();
    progressDialog = new frmProgressbar();
    worker = new BackgroundWorker();
    worker.WorkerReportsProgress = true;
    worker.WorkerSupportsCancellation = true;
    worker.DoWork += new System.ComponentModel.DoWorkEventHandler(worker_DoWork);
    worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
            worker_RunWorkerCompleted);
    worker.RunWorkerAsync();
    progressDialog.ShowDialog();
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
    // Do the lengthy work
}
void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    progressDialog.Close();
}
4

2 に答える 2

0

親フォームを ShowDialog メソッドに提供してみてください

progressDialog.ShowDialog(this);
于 2013-08-01T11:33:12.373 に答える
0
     private Thread progressThread;

 private void Btn_Upload_Click(object sender, EventArgs e)
    {

        Thread.CurrentThread.Priority = ThreadPriority.Highest;
        progressThread = new Thread(new ThreadStart(ShowProgressWindow));
        progressThread.Priority = ThreadPriority.Lowest;
        progressThread.Start(); 

     // do your operation here...
        Class_Upload_SSRD.Search_All_Ptags(Cbox_Ptag_names, label4);
  ///close porcess once ur work is done...
        progressThread.Abort();
        Thread.CurrentThread.Priority = ThreadPriority.Normal;
        this.Show();
    }

// プログレスバー機能

   public void ShowProgressWindow()
    {
        Progress_bar pb = new Progress_bar();
        pb.ShowDialog();
    }

進行状況ウィンドウ フォームを作成します。操作が実行されると、画像のように表示されます。 ここに画像の説明を入力

于 2013-08-01T11:46:11.950 に答える