문제

스플래쉬 화면에 4 초 동안 표시되는 레이블이 있습니다. 라벨을 로딩 프로세스를 백분율로 표시하려고합니다. 분명히, 이것은 단지 프로그램이 실제로 시작하고 실제로 "로드"하는 것이 아니라는 것을 사용자에게 보여주기위한 것입니다. 레이블에 4 초 내에 백분율 (1%에서 100%로)을 표시 할 수있는 방법이 있습니까? 이 작업을 수행하는 방법을 약간 잃어 버렸습니다.

도움이 되었습니까?

해결책

양식에 타이머 컨트롤을 넣고 간격 속성을 40으로 설정하고 활성화 된 속성을 true로 설정하십시오. 다음과 같은 양식 수준 변수를 만듭니다.

private int _Progress = 0;

타이머의 진드기 이벤트 에서이 코드를 넣습니다.

if (_Progress < 100)
{
    _Progress++;
    label1.Text = _Progress.ToString() + "%";
}
else
{
    timer1.Enabled = false;
}

타이머는 실제로 밀리 초에 정확하지 않으므로 정확히 4 초가 걸리지 않지만 작업을 수행합니다.

다른 팁

WPF가 아닌 Winforms를 말하고 있다고 가정하면 가장 간단한 방법은 타이머 컨트롤입니다. 40ms (4 초 = 4000ms. 4000ms/100 업데이트 = 40ms)로 시간 초과를 설정하십시오. 진행 상황을 추적하기 위해 클래스 수준의 정수를 만듭니다. 그러면 Ontick 이벤트 코드는 다음과 같이 보일 것입니다 ...

if(progress < 100)
{
  progress++;
  progessLabel.Text = String.Format("Loading...  Progress: {0}%", progress);
}
else
{
  timer.Enabled = false;
}

100 밀리 초라고하는 간격이 설정된 타이머가 가장 간단한 접근법입니다. 타이머 이벤트가 호출되는 횟수를 유지하고 각 진드기 각각의 진전 바를 2.5 % 씩 업데이트하십시오.

이것이 효과가 있지만 진행률 바가이 상황에 이상적이지 않다고 말하고 싶습니다. 대신 애니메이션 그래픽만이 프로그램이 시작되었다는 것을 나타내지 만 진행률 바가 할 수있는 것처럼 오도하지는 않기 때문에 더 나을 것입니다.

Microsoft는 정기적으로 특정 응용 프로그램에서 오해의 소지가있는 진행 막대를 사용하는 실수를 저지른다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top