Как заставить индикатор выполнения winforms двигаться вертикально в C#?

Я работаю над музыкальным автоматом WinForms.
Я бы хотел иметь вертикальную ProgressBar для регулировки громкости.

Кто-нибудь знает как это сделать?

Ответов (2)

Решение

Я не знаю, что я бы использовал индикатор выполнения для управления громкостью, но для отображения уровня громкости вы можете использовать элемент управления, нарисованный пользователем, или вы можете просто изменить размер метки с помощью цвета фона (этот последний метод является своего рода глупым хотя)

Индикатор выполнения не предназначен для ввода данных независимо от ориентации.

Если вы действительно хотите контролировать громкость, рассмотрите возможность использования вертикальной полосы прокрутки или полосы прокрутки с вертикальной ориентацией .

Как бы то ни было, есть обсуждение того, как создать вертикальную полосу выполнения в 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; 
    } 
  } 
}

который устанавливает PBS_VERTICAL флаг в Style .

Для этого вам нужно использовать ProgressBarRenderer. Это задокументировано в MSDN.

В документации на самом деле показана реализация вертикального ProgressBar, так что это должно упростить вам задачу. :-)