Heim >Backend-Entwicklung >C#.Net-Tutorial >Beispielcode-Sharing zur Implementierung der Fortschrittsbalkenfunktion mit Prozentsatz in C#

Beispielcode-Sharing zur Implementierung der Fortschrittsbalkenfunktion mit Prozentsatz in C#

黄舟
黄舟Original
2017-05-21 10:55:561992Durchsuche

In diesem Artikel wird hauptsächlich die C#-Implementierung der Funktion Fortschrittsbalken mit Prozentsatz vorgestellt, die Funktionsanforderungen des Fortschrittsbalkens mit Prozentsatz analysiert und spezifische Implementierungsschritte und Beispiele bereitgestellt Informationen zu verwandten Betriebsmethoden finden Freunde in Not unter

Dieser Artikel beschreibt das Beispiel der C#-Implementierung der Fortschrittsbalkenfunktion mit Prozentsatz. Teilen Sie es allen als Referenz mit. Die Einzelheiten lauten wie folgt:

Funktionale Anforderungen:

Wenn ein zeitaufwändiger Berechnungsprozess erforderlich ist Nachdem der Benutzer auf die Schaltfläche geklickt hat, wird ein Fortschrittsbalkenfenster angezeigt, in dem der Fortschritt der Ausführung angezeigt wird (vorzugsweise mit einem Prozentsatz). Nachdem die Ausführung abgeschlossen ist, wird das Fortschrittsbalkenfenster angezeigt wird geschlossen und zum Hauptprogrammfenster zurückgekehrt. Das übergeordnete Formular kann nicht angeklickt werden, bevor das untergeordnete Fenster geschlossen wird.

Implementierungsmethode:

Entwerfen Sie zunächst das Form2-Fortschrittsbalkenformular und platzieren Sie das ProgressBar-Steuerelement progressBar1 und das Label-Steuerelement label1 in der Mitte von Form2 , Code:

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;//回复父窗体为可用
 }
}

Formular For1m Design aufrufen, Button Control Button1 hinzufügen, EreignisCode:

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();//关闭窗体
}

Ergänzung: A Ein Freund sagte, dass fm.Show(this): in vs2003 nicht unterstützt wird. Dann können Sie einen weiteren Parameter zum -Konstruktor von From2 hinzufügen:

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;//回复父窗体为可用
}

Die entsprechende Änderung in Form1 lautet:

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();//关闭窗体
}

Das obige ist der detaillierte Inhalt vonBeispielcode-Sharing zur Implementierung der Fortschrittsbalkenfunktion mit Prozentsatz in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn