BUG nelle ScrollBar di .NET 2.0

La ScrollBar di .NET 2.0 ha un BUG per quanto riguarda il valore massimo che raggiunge.

 

Per vederlo basta introdurre una VScrollBar  (“vScrollBar “) su una WinForm, lasciando le proprietà di default che sono:

Min=0
Max=100
LargeChange=10

Intercettando l'evento ValueChanged e facendo visualizzare il valore in una Label (“lblValore”):


private void vScrollBar_ValueChanged(object sender, EventArgs e)
{
    lblValore.Text = vScrollBar.Value.ToString();
}

cliccando sui pulsanti di scorrimento i valori variano saltando da 0 a 91!


Praticamente il valore massimo raggiungibile è:

ValoreMax = Max – LargeChange + 1 = (100 – 10 + 1) = 91;

L'unico modo per avere un comportamento corretto è nell’impostare :

LargeChange=1
Infatti avremo:

ValoreMax = Max – LargeChange + 1 = (100 – 1 + 1) = 100;

 

Ho cercato su internet e ho trovato questo link:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94128
da cui capisco che la Microsoft conosce il problema e per loro la soluzione è....
vi tenete il problema e aggiungete una costante per evitare l'errore!
 

Cioè se avete lasciato il valore di

LargeChange = 10;

aumentate il valore Max di (LargeChange – 1) ad esempio Max = 109 (100 + 10 – 1);

 

Io non sono d’accordo con questa soluzione, in quanto se migrerete in futuro il programma in

WPF, potreste avere dei problemi con i limiti dei valori.

 

Io consiglio di impostare:

LargeChange=1

e lasciare i limiti corretti.

 

Il BUG si presenta anche in Visual Studio 2008.

Print | posted @ domenica 11 novembre 2007 18:29

Comments have been closed on this topic.