How do I make a winforms progress bar move vertically in C#?

前端 未结 2 1829
长发绾君心
长发绾君心 2021-02-06 09:02

I\'m working on a WinForms Jukebox.
I\'d like to have a vertical ProgressBar for the volume control.

Does anyone know how to do that?

相关标签:
2条回答
  • 2021-02-06 09:41

    You have to use the ProgressBarRenderer for that. It's documented in MSDN

    The documentation actually shows implementation of a vertical ProgressBar, so it should make it easy for you. :-)

    0 讨论(0)
  • 2021-02-06 10:04

    I don't know that I'd use a progress bar to control the volume, but to display the volume level you could use a user drawn control or you could just resize a label with a background color (that last method is kind of kludgy though)

    The progress bar isn't meant to take input, no matter what the orientation.

    If you really would like to control the volume, consider using a vertical scroll bar, or a trackbar with a vertical orientation.

    For what it's worth, there's a discussion on how to create a vertical progress bar on MSDN, where they suggest doing this:

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

    which sets the PBS_VERTICAL flag in Style.

    0 讨论(0)
提交回复
热议问题