向MS Chart控件C#添加滚动条

请理解我知道有关于这个问题的其他线索,但我的需求是不同的。

基本上在我看到人们说用MSChart实现滚动条之前,他们使用了

.Size = …

要么

.View = …

但是,这会使滚动条自动显示,并且此滚动条包含一个按钮,单击该按钮会导致条形图消失,使图表显示所有数据,并且无法在不重新启动应用程序的情况下将滚动条带回图表。

所以我请问,有没有办法在我的图表的X轴上包含一个水平滚动条? 我需要这样我可以在100秒块的块上查看我的图表数据。

即0 – 100,然后单击滚动条将带我到100 – 200块。

提前谢谢你们!!!!! 我也用C#编码

以下是您需要的示例:
(尝试一下,只需创建一个表单,添加一个mschart并调用以下方法)

private void FillChart() { int blockSize = 100; // generates random data (ie 30 * blockSize random numbers) Random rand = new Random(); var valuesArray = Enumerable.Range(0, blockSize * 30).Select(x => rand.Next(1, 10)).ToArray(); // clear the chart chart1.Series.Clear(); // fill the chart var series = chart1.Series.Add("My Series"); series.ChartType = SeriesChartType.Line; series.XValueType = ChartValueType.Int32; for (int i = 0; i < valuesArray.Length; i++) series.Points.AddXY(i, valuesArray[i]); var chartArea = chart1.ChartAreas[series.ChartArea]; // set view range to [0,max] chartArea.AxisX.Minimum = 0; chartArea.AxisX.Maximum = valuesArray.Length; // enable autoscroll chartArea.CursorX.AutoScroll = true; // let's zoom to [0,blockSize] (eg [0,100]) chartArea.AxisX.ScaleView.Zoomable = true; chartArea.AxisX.ScaleView.SizeType = DateTimeIntervalType.Number; int position = 0; int size = blockSize; chartArea.AxisX.ScaleView.Zoom(position, size); // disable zoom-reset button (only scrollbar's arrows are available) chartArea.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll; // set scrollbar small change to blockSize (eg 100) chartArea.AxisX.ScaleView.SmallScrollSize = blockSize; } 

快照:

mschart缩放