>  기사  >  백엔드 개발  >  C#에서 백분율로 진행률 표시줄 기능을 구현하는 방법에 대한 샘플 코드 공유

C#에서 백분율로 진행률 표시줄 기능을 구현하는 방법에 대한 샘플 코드 공유

黄舟
黄舟원래의
2017-05-21 10:55:561952검색

이 글에서는 주로 진행률 표시줄 기능의 C# 구현을 백분율로 소개하고, 진행률 표시줄의 기능적 요구 사항을 백분율로 분석하고, 구체적인 구현 단계와 예를 제공합니다. 관련 작업 방법은

을 참조하세요. 이 글은 C#에서 진행률 표시줄 기능을 백분율로 구현하는 예를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

기능 요구 사항:

시간이 많이 걸리는 계산 프로세스가 사용자가 버튼을 클릭하면 실행 진행률을 표시하는 진행률 표시줄 창이 나타납니다. (가급적이면 실행이 완료된 후 진행률 표시줄 창이 나타납니다. 닫히고 기본 프로그램 창으로 돌아갑니다. 하위 창을 닫기 전에는 상위 양식을 클릭할 수 없습니다.

구현 방법:

먼저 Form2 진행률 표시줄 폼을 디자인하고 Form2 중앙에 ProgressBar 컨트롤 ProgressBar1 및 Label 컨트롤 label1을 배치합니다. , 코드:

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 디자인 양식 호출, 버튼 컨트롤 버튼1 추가, 이벤트코드:

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이라고 하더군요 vs2003에서는 Show(this):가 지원되지 않는 경우 From2의 생성자 에 매개변수를 하나 더 추가할 수 있습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.