2012-05-22 2 views
0

하드 디스크의 배터리 크기 또는 사용 된 공간 크기와 같은 비율을 나타내는 막대가 필요합니다. 마찬가지로 enter image description here백분율을 표시하는 막대, 진행 막대는 표시하지 않음

이것은 진행률 표시 줄이 아닙니다. 진행률 표시 줄을 사용할 때마다 메시지 PBM_SETPOS을 보낼 때마다 0에서 pos로 증가합니다.

막대는 수동으로 값을 설정할 수있는 기능이 있어야하며 그 이후에는 증가하는 방식이 아닌 색상 길이가 지정된 길이로 직접 변경됩니다.

WinAPI에이 기능을위한 빌드가 있습니까? 패널을 사용하고 그 다음 ... 거기에 함께 레이블을 설정 비율에 따라 배경색 레이블의 폭을 설정

+3

당신은을 사용할 수 있습니다 이것에 대한 진행률 표시 줄, 비스타에서 추가 된 * 향상된 기능 중 하나를 해결할 필요가 있습니다. 즉, 위치를 늘릴 때 사용한 애니메이션입니다. 방법을 알아 보려면 여기에서 내 대답 읽기 : http://stackoverflow.com/questions/6128287/tprogressbar-never-fills-up-all-the-way-seems-to-be-updating-too-fast/6128562#6128562 –

+1

그래서'즉시 진행 바 카운터를 N으로 설정할 때마다 즉시 N-1로 설정하십시오 .'이 해결책입니까? 나는 그것을 시도 할 것이지만 소리가났다 ..... 감사합니다 – user565739

+2

맞습니다. 그것은 이상한 일이지만 그것이 그 통제와 함께 굴러가는 방법입니다. –

답변

0

...

코드는 다음과 같이

string s27 = "select percentage from CandidateReg3 where candidateid='" + candidateid + "'"; 
DataTable d17 = cn.viewdatatable(s27); 
if (d17.Rows.Count > 0) { 
    for (int m = 0; m < d17.Rows.Count; m++) { 
     percreg3 = int.Parse(d17.Rows[m]["percentage"].ToString()); 
     percregtotal = percreg3 + percreg; 
    } 
} else { 
    percregtotal = percreg; 
} 

decimal percregtotals = (decimal)percregtotal/100; 
double percent = Convert.ToDouble(percregtotals); 

// double percent = 1; 
IndicatorLabel.Width = new Unit(percent * IndicatorPanel.Width.Value, UnitType.Pixel); 

IndicatorLabel.ToolTip = percent.ToString("p0"); 
IndicatorLabel.Text = percent.ToString("p0"); 
IndicatorLabel.ForeColor=Color.White; 

// IndicatorLabel.Text = ""; 
IndicatorLabel.BackColor = Color.Green; 
관련 문제