Sto lavorando a un jukebox winforms in C#. Mi piacerebbe avere una barra di avanzamento verticale per il controllo del volume. Qualcuno sa come farlo?Come faccio a far muovere verticalmente una barra di avanzamento di winforms in C#?
risposta
Non so che mi piacerebbe utilizzare una barra di avanzamento per il controllo il volume, ma per visualizzazione il livello del volume è possibile utilizzare un controllo utente disegnato o si può solo ridimensionare un'etichetta con un colore di sfondo (che l'ultimo metodo è di tipo kludgy)
La barra di avanzamento non è pensata per prendere input, indipendentemente dall'orientamento.
Se si desidera regolare il volume , prendere in considerazione l'utilizzo di una barra di scorrimento verticale o di un trackbar con a vertical orientation.
Per quel che vale, c'è a discussion on how to create a vertical progress bar on MSDN, dove si suggeriscono di fare questo:
using System;
using System.Windows.Forms;
public class VerticalProgressBar : ProgressBar {
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.Style |= 0x04;
return cp;
}
}
}
che imposta il flag PBS_VERTICAL
in Style
.
+1: "Funziona sulla mia macchina" – Sung
+1 Grazie, funziona molto bene. – Krakerjak
Aggiungere quanto segue alla classe e le dimensioni verranno impostate correttamente quando si trascina il controllo sul modulo. override protetto System.Drawing.Size DefaultSize { get { return new System.Drawing.Size (23,100); } } –
Per questo devi utilizzare ProgressBarRenderer. È documentato in MSDN
La documentazione mostra effettivamente l'implementazione di una barra di avanzamento verticale, quindi dovrebbe renderla facile per te. :-)
+1 Questa soluzione ha funzionato, ma quella lasciata da Daniel sembrava migliore. – Krakerjak
Nessun problema. Ti ho appena detto quello che Microsoft ha detto che dovresti fare; è la loro struttura, dopo tutto. è una tua scelta se farlo o meno. :-) –
Si prega di non utilizzare una barra di avanzamento per questo; una barra di scorrimento verticale è il controllo più appropriato. Le barre di avanzamento sono progettate per l'output visivo e i controlli abusanti in questo modo portano a interfacce utente scomode. – Rob
Questo è un buon punto. Ho visto "barra di avanzamento verticale" e non ho guardato il resto. Probabilmente una barra di avanzamento non è la cosa da usare per mostrare il livello di un controllo del volume. –