ホームページ >バックエンド開発 >C#.Net チュートリアル >パーセンテージ付きのプログレスバー機能を実装するための C# サンプル コードの共有

パーセンテージ付きのプログレスバー機能を実装するための C# サンプル コードの共有

黄舟
黄舟オリジナル
2017-05-14 10:30:182188ブラウズ

この記事では、パーセンテージを使用した プログレス バー 関数の C# 実装を主に紹介し、パーセンテージを使用したプログレス バーの機能要件を分析し、具体的な実装手順と関連する操作方法をサンプルの形で提供します。以下を参照してください

この記事の例では、C# でパーセンテージ付きのプログレスバー関数を実装する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

機能要件:

時間のかかる計算処理を実行するプログラムの場合、ユーザーがクリックした後にプログレスバーウィンドウをポップアップ表示したいボタン。実行の進行状況 (できればパーセンテージで表示) を表示します。実行が完了すると、進行状況バー ウィンドウが閉じて、メイン プログラム ウィンドウに戻ります。 子ウィンドウを閉じる前に親フォームをクリックすることはできません。

実装方法:

まずForm2プログレスバーフォームをデザインし、ProgressBarcontrolprogressBar1とラベルコントロールlabel1をForm2の中央に配置します。コード:

public partial class Form2 : Form
{
 public Form2(int _Minimum,int _Maximum)//带参数,表示进度条的范围的最小值和最大值
 {
   InitializeComponent();
   progressBar1.Maximum=_Maximum;//设置范围最大值
   progressBar1.Value = progressBar1.Minimum = _Minimum;//设置范围最小值
 }
 public void setPos(int value)//设置进度条当前进度值
 {
   if (value < progressBar1.Maximum)//如果值有效
   {
     progressBar1.Value = value;//设置进度值
     label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";//显示百分比
   }
   Application.DoEvents();//重点,必须加上,否则父子窗体都假死
 }
 private void Form2_Load(object sender, EventArgs e)
 {
   this.Owner.Enabled = false;//设置父窗体不可用
 }
 private void Form2_FormClosed(object sender, FormClosedEventArgs e)
 {
   this.Owner.Enabled = true;//回复父窗体为可用
 }
}

フォームFor1mデザインを呼び出し、 add Button Control button1, eventコード:

private void button1_Click(object sender, EventArgs e)
{
   Form2 fm = new Form2(0,100);
   fm.Show(this);//设置父窗体
   for (int i = 0; i < 100; i++)
   {
     fm.setPos(i);//设置进度条位置
     Thread.Sleep(100);//睡眠时间为100
   }
   fm.Close();//关闭窗体
}

追加: 友人は、fm.Show(this): は vs2003 ではサポートされていないと言ったので、From2 の コンストラクター にパラメータをもう 1 つ追加できます:

public Form OwnerForm;
public Form2(int _Minimum,int _Maximum,Form _OwnerForm)//带参数,表示进度条的范围的最小值和最大值
{
   InitializeComponent();
   progressBar1.Maximum=_Maximum;//设置范围最大值
   progressBar1.Value = progressBar1.Minimum = _Minimum;//设置范围最小值
   this.OwnerForm=_OwnerForm;
}
private void Form2_Load(object sender, EventArgs e)
{
   this.OwnerForm.Enabled = false;//设置父窗体不可用
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
   this.OwnerForm.Enabled = true;//回复父窗体为可用
}

Form1 の対応する変更は次のとおりです:

private void button1_Click(object sender, EventArgs e)
{
   Form2 fm = new Form2(0,100,this);
   fm.Show();//设置父窗体
   for (int i = 0; i < 100; i++)
   {
     fm.setPos(i);//设置进度条位置
     Thread.Sleep(100);//睡眠时间为100
   }
   fm.Close();//关闭窗体
}

以上がパーセンテージ付きのプログレスバー機能を実装するための C# サンプル コードの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。