2009-02-24 16 views
7

Qualcuno ha qualche idea su come creare una trackbar con più cursori in WinForms? Vorrei segnare un intervallo. Inoltre, è possibile spostare leggermente i cursori verticalmente? Il mio obiettivo sarebbe avere due cursori sopra la trackbar e due sotto.Barra di scorrimento a scorrimento multiplo per i moduli Windows

 v-----------------v 
________________________________________ 
           ^------^ 

risposta

7

È possibile eseguire questa operazione scrivendo il proprio UserControl dove si gestiscono gli eventi del mouse e si dipinge. Avresti bisogno di diverse regioni di hit hit; uno per ogni pollice.

Per disegnare la trackbar, è necessaria una combinazione di ControlPaint e le API di temi fornite dallo spazio dei nomi System.Windows.Forms.VisualStyles. In particolare, lo VisualStyleElement.TrackBar.ThumbTop, VisualStyleElement.TrackBar.ThumbBottom e VisualStyleElement.TrackBar.Track per disegnare i pollici e la traccia rispettivamente.

Si utilizzano le chiamate ControlPaint per disegnare una cornice e pulsanti per la traccia e i pollici quando il tema non è disponibile (ad esempio su Win2k o quando il tema è disabilitato).

+0

Non ho mai fatto nulla di simile prima. Se disegna tutto me stesso, c'è un modo per ottenere ancora il comportamento "standard" per i tumb e le zecche, o dovrei progettarlo anche io? – Presidenten

+0

Sfortunatamente, avresti bisogno di progettare e codificarti da solo. Esistono stili visivi per disegnare le zecche quando il tema è disponibile, ma sei responsabile della determinazione del layout, della gestione dell'interazione con tastiera e mouse, ecc. –

0

È possibile disegnare il proprio utilizzando ControlPaint per assicurarsi che il rendering è coerente con il resto della tua interfaccia utente.

+0

Non ho mai usato ControlPaint prima. Potresti descrivere un po 'più in dettaglio come si farebbe? – Presidenten

Problemi correlati