2009-02-28 12 views
6

私はC#でwinformsジュークボックスに取り組んでいます。私は音量コントロールのための垂直プログレスバーを持っていたいと思います。誰もそれを行う方法を知っていますか?C#でwinformsプログレスバーを垂直に移動させるにはどうすればよいですか?

+0

このためにプログレスバーを使用しないでください。垂直トラックバーが最も適切なコントロールです。プログレスバーは視覚的出力用に設計されており、このような方法でコントロールを乱用すると、厄介なユーザーインターフェイスが発生します。 – Rob

+0

それは良い点です。私は "垂直方向の進行バー"を見て、残りの部分を見ていませんでした。プログレスバーはおそらくボリュームコントロールのレベルを表示するために使用するものではありません。 –

答えて

17

私は制御にボリュームをプログレスバーを使用したいことを知りませんが、表示ユーザー描かれたコントロールを使用することができますか、あなただけの背景色でラベルのサイズを変更することができ音量レベルに(最後の方法は一種のクルージングですが)

進捗バーは、方向性に関係なく入力を取得するためのものではありません。

実際にのコントロールのボリュームを使用する場合は、垂直スクロールバーまたはトラックバーを使用してa vertical orientationを使用することを検討してください。何が価値があるために

、彼らはこのことをお勧めa discussion on how to create a vertical progress bar on MSDN、あります:

using System; 
using System.Windows.Forms; 

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

StylePBS_VERTICALフラグを設定するには。

+0

+1:「自分のマシンでの作業」 – Sung

+0

+1ありがとう、これはとてもうまく動作します。 – Krakerjak

+0

クラスに以下を追加すると、コントロールをフォームにドラッグするとサイズが正しく設定されます。 保護されたオーバーライドSystem.Drawing.Size DefaultSize { get { return new System.Drawing.Size(23,100); } } –

6

これにはProgressBarRendererを使用する必要があります。 MSDN

ドキュメントには、実際には垂直なProgressBarの実装が示されているため、簡単に理解できるはずです。 :-)

+0

+1この解決法は機能しましたが、ダニエルが残した方がより良く見えました。 – Krakerjak

+0

問題ありません。私はマイクロソフトが何をすべきかと言ったことをあなたに話しました。結局のところ、彼らのフレームワークです。それを行うかどうかはあなたの選択です。 :-) –

関連する問題