Le type de zoom que vous souhaitez effectuer ne peut pas être effectué automatiquement par MSChart. Une fois que vous avez récupéré la plage de valeurs X 'Zoom-In' de l'utilisateur, vous devez écrire un peu plus de code pour réinitialiser la mise à l'échelle de l'axe Y de manière appropriée.
Cela fonctionne plus facilement si vous utilisez une série de données de type Ligne et que vos données source pour cette série sont stockées en tant que liste triée.
Dim firstXindex as Int32 = myDataSeries.IndexOfKey(firstXzoomValue)
Dim lastXindex as Int32 = myDataSeries.IndexOfKey(lastXzoomValue)
Dim minY as Double = 1.7E+308
Dim maxY as Double = -1.7E+308
For i = firstXindex To lastXindex
If myDataSeries.GetByIndex(i) > maxY Then
maxY = myDataSeries.GetByIndex(i)
End If
If myDataSeries.GetByIndex(i) < minY Then
minY = myDataSeries.GetByIndex(i)
End If
Next
Une fois que vous avez utilisé quelque chose comme le code ci-dessus pour obtenir votre minY et maxY, vous pouvez ensuite utiliser ces valeurs pour réinitialiser le min et max valeurs de l'axe Y sur la ChartArea:
With myChartArea
.AxisY.Maximum = maxY
.AxisY.Minimum = minY
End With
Ceci ne fait pas automatiquement un zoom sur la plage de valeurs Y appropriée en fonction de la plage de valeurs X sélectionnée par l'utilisateur – ChrisAU