2009-02-28 4 views
6

저는 C#에서 winforms 주크 박스를 만들고 있습니다. 볼륨 컨트롤을위한 수직 진행 바를 갖고 싶습니다. 누구든지 그 일을하는 방법을 알고 있습니까?winforms 진행률 표시 줄을 C#으로 세로로 이동하려면 어떻게해야합니까?

+0

진행률 표시 줄을 사용하지 마십시오. 수직 트랙 바가 가장 적절한 컨트롤입니다. 진행률 표시 줄은 시각적 출력을 위해 설계되었으며 이러한 방식으로 컨트롤을 악용하면 사용자 인터페이스가 어색해집니다. – Rob

+0

좋은 지적입니다. 나는 "수직 진행 바"를보고 나머지는 보지 않았다. 진행률 표시 줄은 아마도 볼륨 컨트롤의 수준을 표시하는 데 사용되는 것이 아닙니다. –

답변

17

나는 제어 볼륨에 진행 표시 줄을 사용하는 거라고 알고 있지만하지 않는 표시 당신이 사용자 그려 컨트롤을 사용할 수 있습니다 또는 당신은 단지 배경 색상과 라벨의 크기를 조정할 수있는 볼륨 레벨로 (마지막 방법은 일종의 kludgy입니다.)

진행률 표시 줄은 방향에 상관없이 입력을받는 것이 아닙니다.

컨트롤 볼륨을 사용하려면 세로 스크롤 막대 또는 a vertical orientation이있는 트랙 막대를 사용하는 것이 좋습니다. 그것은 가치가 무엇인지에 대한

, 그들은이 일을 제안 a discussion on how to create a vertical progress bar on MSDN을,있다 : StylePBS_VERTICAL 플래그를 설정

using System; 
using System.Windows.Forms; 

public class VerticalProgressBar : ProgressBar { 
    protected override CreateParams CreateParams { 
    get { 
     CreateParams cp = base.CreateParams; 
     cp.Style |= 0x04; 
     return cp; 
    } 
    } 
} 

합니다.

+0

+1 : "내 컴퓨터에서 작동" – Sung

+0

+1 감사합니다.이 기능은 매우 잘 작동합니다. – Krakerjak

+0

클래스에 다음을 추가하면 폼을 컨트롤로 드래그 할 때 크기가 올바르게 설정됩니다. protected override System.Drawing.Size DefaultSize { get { return new System.Drawing.Size (23,100); } } –

6

이를 위해 ProgressBarRenderer를 사용해야합니다. MSDN

문서에 실제로 수직 ProgressBar 구현이 표시되어 있으므로 쉽게 이해할 수 있습니다. :-)

+0

+1이 해결책은 효과가 있었지만 다니엘이 남긴 것은 더 잘 보였다. – Krakerjak

+0

문제 없습니다. 나는 마이크로 소프트가 당신이해야한다고 말한 것을 당신에게 말했다. 그것은 결국 그들의 프레임 워크입니다. 그것을할지 여부를 결정하는 것은 귀하의 선택입니다. :-) –

관련 문제